Je veux créer un objet qui contient 2 liens aux utilisateurs. Par exemple :
mais j’obtiens les erreurs suivantes lorsque vous exécutez le serveur :
- ``
- ``
Pouvez-vous s’il vous plaît expliquer pourquoi je reçois les erreurs et les corriger ?
Je veux créer un objet qui contient 2 liens aux utilisateurs. Par exemple :
mais j’obtiens les erreurs suivantes lorsque vous exécutez le serveur :
Pouvez-vous s’il vous plaît expliquer pourquoi je reçois les erreurs et les corriger ?
Vous avez deux clés étrangères à utilisateur. Django crée automatiquement une relation inverse de l’utilisateur vers GameClaim, qui est habituellement . Cependant, parce que vous avez deux FKs, vous auriez deux
attributs, ce qui est évidemment impossible. Si vous devez dire Django quel nom à utiliser pour la relation inverse.
Utilisation du `` attribut à la définition de la FK. par exemple
L' User
modèle est d'essayer de créer deux champs portant le même nom, l'un pour l' GameClaims
dont User
le target
, et un autre pour l' GameClaims
dont User
le claimer
. Voici les docs sur related_name
, qui est de Django reinhardt façon de vous permettant de définir les noms des attributs de sorte que le générés automatiquement ne sont pas en conflit.
L'OP n'est pas à l'aide d'une classe de base abstraite... mais si vous êtes, vous trouverez que le codage en dur des le related_name dans le FK (par exemple,..., related_name="monnom") va entraîner un certain nombre de ces erreurs de conflit - un pour chaque classe héritée de la classe de base. Le lien fourni ci-dessous contient la solution de contournement, qui est simple, mais certainement pas évident.
Du django docs...
Si vous utilisez le related_name attribut sur une ForeignKey ou ManyToManyField, vous devez toujours spécifier un unique inverse nom pour le champ. Cela devrait provoquer un problème dans les classes de base abstraites, depuis les champs de cette classe sont inclus dans chaque de l'enfant classes, avec exactement les mêmes valeurs pour les attributs (y compris related_name) à chaque fois.
Plus d'infos ici.
Me semble de croiser ce de temps en temps quand j'ajoute un sous-module comme une application à un projet django, par exemple, compte tenu de la structure suivante:
myapp/
myapp/module/
myapp/module/models.py
Si j'ai ajouter la ligne suivante à INSTALLED_APPS:
'myapp',
'myapp.module',
Django semble traiter les myapp.mymodule models.py fichier deux fois et jette l'erreur ci-dessus. Ce problème peut être résolu en n'incluant pas le module principal dans le INSTALLED_APPS liste:
'myapp.module',
Y compris l' myapp
au lieu de myapp.module
provoque toutes les tables de base de données doit être créée avec des noms incorrects, donc cela semble être la façon correcte de le faire.
Je suis tombé sur ce post en cherchant une solution à ce problème donc pensé que je l'avais mis ça ici :)
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.