Existe-t-il un moyen de définir une relation de clé étrangère en utilisant l'ID entier d'un modèle? Ce serait à des fins d'optimisation.Django: Définir une clé étrangère en utilisant un nombre entier?
Par exemple, supposons que j'ai un modèle employé:
class Employee(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
type = models.ForeignKey('EmployeeType')
et
EmployeeType(models.Model):
type = models.CharField(max_length=100)
Je veux la flexibilité d'avoir des types d'employés illimités, mais il y aura probablement que dans l'application déployée une type unique, donc je me demande s'il existe un moyen de coder en dur l'ID et définir la relation de cette façon. De cette façon, je peux éviter un appel db pour obtenir l'objet EmployeeType en premier.
Est-ce documenté? –
[modèle '.save()'] (https://github.com/django/django/blob/731f313d604a6cc141f36d8a1ba9a75790c70154/django/db/models/base.py#L708) utilise le champ 'attname' ([' pre_save () 'renvoie la valeur' attname'] (https://github.com/django/django/blob/master/django/db/models/fields/__init__.py#L602)). Pour ForeignKeys, 'attname' est le nom avec le suffixe' _id'. En outre, l'attribut 'foobar_id' d'une instance de modèle est [mis à jour automatiquement] (https://github.com/django/django/blob/master/django/db/models/fields/related.py#L467) lorsque vous définissez 'foobar'. Mais où est-il officiellement documenté? –
En utilisant directement les valeurs des clés étrangères: https://docs.djangoproject.com/fr/1.8/topics/db/optimization/#use-foreign-key-values-directly –