D:\zjm_code\basic_project>python manage.py syncdb
Error: One or more models did not validate:
topics.topic: Accessor for field 'content_type' clashes with related field 'Cont
entType.topic_set'. Add a related_name argument to the definition for 'content_t
ype'.
topics.topic: Accessor for field 'creator' clashes with related field 'User.crea
ted_topics'. Add a related_name argument to the definition for 'creator'.
topics.topic: Reverse query name for field 'creator' clashes with related field
'User.created_topics'. Add a related_name argument to the definition for 'creato
r'.
topicsMap.topic: Accessor for field 'content_type' clashes with related field 'C
ontentType.topic_set'. Add a related_name argument to the definition for 'conten
t_type'.
topicsMap.topic: Accessor for field 'creator' clashes with related field 'User.c
reated_topics'. Add a related_name argument to the definition for 'creator'.
topicsMap.topic: Reverse query name for field 'creator' clashes with related fie
ld 'User.created_topics'. Add a related_name argument to the definition for 'cre
ator'.
Réponses
Trop de publicités?Vous avez un certain nombre de clés étrangères pour lesquelles django est incapable de générer des noms uniques.
Vous pouvez vous aider en ajoutant des arguments "related_name" aux définitions de champ de clé étrangère dans vos modèles. Par exemple :
content_type = ForeignKey(Topic, related_name='topic_content_type')
Voir ici pour plus. http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.related_name
J'ai eu un problème similaire quand j'essayais de coder une solution pour une table qui retirait les noms des équipes de football de la même table. Ma table ressemblait à ceci :
hometeamID = models.ForeignKey(Team, null=False, on_delete=models.CASCADE)
awayteamID = models.ForeignKey(Team, null=False, on_delete=models.CASCADE)
apporter les modifications ci-dessous a résolu mon problème :
hometeamID = models.ForeignKey(Team, null=False, on_delete=models.CASCADE,related_name='home_team')
awayteamID = models.ForeignKey(Team, null=False, on_delete=models.CASCADE,related_name='away_team')