¿Hay alguna manera de establecer una relación de clave externa usando la identificación de entero de un modelo? Esto sería para fines de optimización.Django: ¿Establecer clave foránea usando enteros?
Por ejemplo, supongamos que tengo un modelo empleado:
class Employee(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
type = models.ForeignKey('EmployeeType')
y
EmployeeType(models.Model):
type = models.CharField(max_length=100)
Quiero la flexibilidad de tener tipos de empleados ilimitadas, pero en la aplicación desplegada probablemente habrá solamente una solo tipo, así que me pregunto si hay una forma de codificar el ID y configurar la relación de esta manera. De esta forma puedo evitar una llamada a db para obtener primero el objeto EmployeeType.
Es esta documentado? –
[modelo '.save()'] (https://github.com/django/django/blob/731f313d604a6cc141f36d8a1ba9a75790c70154/django/db/models/base.py#L708) utiliza el campo 'attname' ([' pre_save () 'devuelve el valor' attname'] (https://github.com/django/django/blob/master/django/db/models/fields/__init__.py#L602)). Para ForeignKeys, 'attname' es el nombre con el sufijo' _id'. Además, el atributo 'foobar_id' de una instancia modelo se [actualiza automáticamente] (https://github.com/django/django/blob/master/django/db/models/fields/related.py#L467) cuando configura 'foobar'. Pero, ¿dónde está documentado oficialmente? –
Usar valores de claves foráneas directamente: https://docs.djangoproject.com/en/1.8/topics/db/optimization/#use-foreign-key-values-directly –