Django erreur. Ne peut pas l'affecter doit être une instance
J'obtiens l'erreur suivante lorsque j'essaie d'exécuter une insertion dans une de mes tables.
Ne peut pas attribuer "1": "de l'Équipe.department_id" doit être un "Ministère" de l'instance
Certes je suis un peu incertain, si je suis à l'aide de la clé étrangère concept correctement. L'insert je suis en train de lancer et un extrait de mon models.py sont donnés ci-dessous.
Ce que je suis en train de faire, c'est que quand quelqu'un veut créer une nouvelle équipe. Ils ont pour la joindre à un département. Par conséquent, le ministère de l'ID doit être dans les deux séries de tableaux.
new_team = Team(
nickname = team_name,
employee_id = employee_id,
department_id = int(Department.objects.get(password = password, department_name = department_name).department_id)
)
models.py
class Department(models.Model):
department_id = models.AutoField(auto_created=True, primary_key=True, default=1)
department_name = models.CharField(max_length=60)
head_id = models.CharField(max_length=30)
password = models.CharField(max_length=128)
class Team(models.Model):
team_id = models.AutoField(primary_key=True)
department_id = models.ForeignKey('Department', related_name = 'Department_id')
employee_id = models.CharField(max_length=30)
nickname = models.CharField(max_length=60)
team_image = models.ImageField(upload_to=get_image_path, blank=True, null=True)
entrez le code ici
OriginalL'auteur rahimbah | 2016-06-15
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de passer le ministère de l'id de l'instance elle-même est assez. Le suivant devrait fonctionner parfaitement:
Juste une remarque, ne jamais le nom de votre étrangères champs quelque chose_id. Que quelque chose est assez. Django est destinée à rendre les choses plus faciles à partir de la perspective de l'utilisateur et le
_id
suffixe signifie que vous êtes en train de penser de la couche de base de données. En fait, si vous avez nommé votre colonnedepartment
, django va automatiquement créerdepartment_id
colonne dans la base de données pour vous. La façon dont les choses sont, vous faites django créerdepartment_id_id
qui est plutôt ridicule.OriginalL'auteur Anonymous