2011-11-22 19 views

Respuesta

28

Puede establecer el atributo del campo db_column a lo que usted desea.

+0

que funcionó. ¡Gracias! –

+0

Sería útil tener una configuración como FK_AUTO_ID = False, resulta que me estoy integrando con una base de datos heredada que tiene que escribir código no seco, como basiscd = ForeignKey ('...', db_column = 'basiscd', related_name = 'basecd'. Es ligeramente molesto. Las formas tienen auto_id = Falso disponible en un escenario paralelo. –

+0

O incluso mejor FK_AUTO_ID = 'cd' como en mi caso todos los FK en este proyecto tienen esta convención, que difiere de la predeterminada de Django (imagine FK_AUTO_ID = '_ id'). –

2

Al usar el campo foráneo en un modelo, Django crea dos campos: uno para el enlace real y otro que hace referencia al otro modelo.

class A(Model): 
    i = IntegerField() 

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

En B no hay ahora dos campos: a y a_id. a_id es el identificador único que se almacena en la base de datos, mientras que a se puede utilizar para acceder directamente a los campos en A, así:

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