J'ai des Pages avec des TextBlocks dessus. Les blocs de texte peuvent apparaître sur des pages différentes, les pages peuvent contenir plusieurs blocs de texte. Chaque page peut avoir ces blocs dans un ordre de son propre. Cela peut être résolu en utilisant un paramètre distinct à. Comme si:Django: Comment puis-je ajouter du poids/commander à une relation plusieurs à plusieurs?
class TextBlock(models.Model):
title = models.CharField(max_length=255)
text = models.TextField()
class Page(models.Model):
textblocks = models.ManyToManyField(TextBlock, through=OrderedTextBlock)
class OrderedTextBlock(models.Model):
text_block = models.ForeignKey(TextBlock)
product_page = models.ForeignKey(Page)
weight = models.IntegerField()
class Meta:
ordering = ('weight',)
Mais je ne suis pas très enthousiaste sur les violations de DRY pour mon application. (Il y a beaucoup de relations ManyToMany ordonnées). Y a-t-il une façon recommandée de s'y prendre?
Edit: faute de frappe
Le champ personnalisé est une bonne idée qui m'a pointé dans cette direction: http://pypi.python.org/pypi/django-sortedm2m/0.2.0 –