J'essaie de créer une table de mappage entre deux références génériques (content_type), une pour les "agents" et une pour les "ressources".Modèle django avec deux clés étrangères génériques (content_type)?
donc je prends la manière habituelle, je fais une clé étrangère générique:
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('content_type', 'object_id')
Et j'essaie de faire un modèle avec deux.
agent_content_type = models.ForeignKey(ContentType)
agent_object_id = models.PositiveIntegerField()
agent = generic.GenericForeignKey('agent_content_type', 'agent_object_id')
resource_content_type = models.ForeignKey(ContentType)
resource_object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('resource_content_type', 'resource_object_id')
Mais cela jette maintenant les erreurs suivantes:
myapp.mymodel: accessoir pour le champ 'resource_content_type' affrontements avec domaine connexe 'ContentType.mymodel_set'. Ajoutez un argument related_name à la définition pour 'resource_content_type'.
Et similaire pour l'agent.
Que se passe-t-il ici? Et que dois-je faire?
acclamations
phil
merci, cela fonctionne. Mais j'espérais que quelqu'un pourrait expliquer pourquoi. Ou plutôt, pourquoi l'ambiguïté apparaît quand j'ai deux clés génériques étrangères mais pas une seule? – interstar
Edité pour ajouter l'explication. –