Existe-t-il un moyen de définir une relation de clé étrangère à l'aide de l'ID entier d'un modèle? Ce serait à des fins d'optimisation.
Par exemple, supposons que j'ai un modèle Employee:
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 dans l'application déployée, il n'y aura probablement qu'un seul type, donc je me demande s'il existe un moyen de coder en dur l'id et de définir la relation de cette façon. De cette façon, je peux éviter un appel db pour obtenir d'abord l'objet EmployeeType.
la source
type
champ est écrit dans la base de données, si vous accédez à latype
propriété par la suite, cela ne reflète pas la modification. Dit dans le code, cela échoueraitassert(employe.type.id == 4)
.Une alternative qui utilise create pour créer l'objet et l'enregistrer dans la base de données en une seule ligne:
la source