114 votes

Django: Définir la clé étrangère en utilisant un entier?

Est-il un moyen de mettre en relation de clé étrangère à l'aide de l'id d'entier d'un modèle? Ce serait pour des raisons d'optimisation.

Par exemple, supposons que j'ai un Employé modèle:

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 illimité types d'employés, mais dans le déploiement de l'application, il y aura probablement qu'un seul type alors je me demandais si 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 une db appeler pour obtenir le EmployeeType objet premier.

52voto

Jacinda Points 1575

Une alternative qui utilise create pour créer l'objet et l'enregistre dans la base de données en une seule ligne:

 employee = Employee.objects.create(first_name='first', last_name='last', type_id=4)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X