J'ai une table de style pour identifier un numéro de modèle pour chaque type de produit:Comment résoudre MySQL et Django d'administration étrangères contrainte de clé
class Style(models.Model):
style = models.AutoField(primary_key=True)
name = models.CharField('Title', max_length=150)
etc..
Et je besoin d'une table de produit qui identifie toutes les variations du produit de la Cependant, le client veut être en mesure de suggérer d'autres produits qui vont avec le style mentionné ci-dessus. J'ai donc voulu ajouter quelques colonnes "produit apparenté" en tant que clé étrangère. Mais ni MySQL ni Django ne me permettent de les ajouter.
Donc pour l'instant je leur ai juste fait des champs entiers. J'ai ajouté ci-dessous des lignes au modèle Style:
related_1 = models.IntegerField('Related Product1',blank=True,max_length=10, default=0)
related_2 etc..
Par exemple, un polo a un styleId = 1.
Il a 4 couleurs différentes et 3 tissus.
7 produits au total pour 1 style.
La table des produits comportera sept lignes avec un ID de style = 1.
Le vendeur, parce que chaque produit a sélectionner manuellement les produits qui sont liés au style, qui vont dans related_1, related_2 etc.
Je comprends Django et MySQL considère-il une logique circulaire potentielle d'une FK à un styleId . Donc, si styleId a une clé étrangère dans le même produit, des conflits peuvent se produire.
Mais en fait, vous ne voulez évidemment pas permettre aux produits liés de référencer un produit avec le même styleId ... qui peut facilement être géré par l'application plutôt que par la base de données. Ma solution de contournement permet à l'utilisateur de saisir manuellement les produits associés dans le formulaire, mais ce serait vraiment génial si je pouvais faire en sorte que Django fasse une liste déroulante avec une liste d'identifiants de produits valides. Si possible.
Est-ce?
P.S. J'ai lu les docs django sur related_field mais je ne pouvais pas vraiment suivre ce qu'ils voulaient. J'ai essayé quelques choses, mais ils n'ont pas fourni beaucoup de code d'exemple.
2e P.S. Je l'ai édité par demande w/informations de modèle plus détaillées. J'espère que c'est plus clair maintenant ...
Merci. Je suis django newbie seulement en utilisant admin, donc je ne suis pas vraiment familier avec cette syntaxe. Laisse-moi sortir ce que j'ai et éditer le post original. – joedevon