2011-11-22 7 views

cevap

28

? İstediğiniz ne olursa olsun hiç alanın db_column niteliğini ayarlayabilirsiniz.

+0

bu hile yaptı. Teşekkürler! –

+0

FK_AUTO_ID = False gibi bir ayarın olması yararlı olacaktır. Ben, kuru bir kod yazmak zorunda olan eski bir veritabanı ile entegre olacağım, örneğin, basedcd = ForeignKey ('...', db_column = 'basiscd', related_name = 'basecd' ,. Bu biraz sinir bozucu, formlar auto_id = Paralel senaryoda yanlış kullanılabilir –

+0

Veya daha da iyisi FK_AUTO_ID = 'cd' benim durumumda olduğu gibi, bu projedeki tüm FK'ler Django'nun varsayılanından farklı olan bu kongreyi elinde tutuyorlar (hayal edin FK_AUTO_ID = '_ id') –

2

Bir modelde yabancı alan kullanılırken, Django iki alan oluşturur: Biri gerçek bağlantı ve diğerine başvuran. a ve a_id: B yılında

class A(Model): 
    i = IntegerField() 

class B(Model): 
    a = ForeignKey(A) 

şimdi iki alan vardır. a_ida doğrudan bu gibi A alanları erişmek için kullanılabilir iken, veritabanında saklanan gibi benzersiz id:

b = B.objects.get(...) 
b.a.i = 5; # Set the field of A 
b.a.save() # Save A