В Django у меня есть следующие модели:
class Pink(models.Model):
...
class White(models.Model):
...
pinks = models.ManyToManyField(Pink)
...
В какой-то момент мне нужно было определить порядок Pinks
внутри White
(чтобы иметь White1.pinks: P1, P2, P3
вместо случайного White1.pinks: P2, P3, P1
) ,
поэтому я создал
class PinkInWhite(models.Model):
pink = models.ForeignKey(Pink)
white = models.ForeignKey(White)
position = models.PositiveIntegerField("pink's position inside this white")
class Meta:
ordering = ['white','position']
Вопрос 1: это лучшее решение?
Вопрос 2: Это явно избыточно: у меня все еще есть поле pinks
в моей модели White
, потому что оно мне нужно в других ситуациях, которые не требуют упорядочения. Могу ли я сохранить его или лучше удалить его и всегда вместо этого использовать реляционную модель PinkInWhite
(Имена моделей вымышленные. Для упрощения вопроса я не использовал настоящие имена моделей, а разговоры о мистере X и мистере Y не помешали бы удобочитаемости ...)