Джанго: Для фиксированной длины.Отношение списка моделей, можно ли использовать фиксированное число OneToOneField в родительской модели, а не FK в дочерней модели? - PullRequest
0 голосов
/ 10 декабря 2011

Я разрабатываю приложение для меню на неделю.Мне интересно, должен ли я просто сделать это:

class MenuWeek(models.Model):
    sunday = OneToOneField("MenuDay")
    monday = OneToOneField("MenuDay")
    #etc through Saturday

class MenuDay(models.Model):
    # some stuff here, but not a foreign key to MenuWeek

вместо этого:

class MenuDay(models.Model):
    week = ForeignKey("MenuWeek") # (with no OneToOne's defined in MenuWeek)

Является ли первый способ хорошим способом реализации коротких отношений списка фиксированной длинымежду родителем и ребенком, или я должен просто придерживаться ForeignKey в MenuDay и обеспечить длину через проверку форм?Я думаю, что администрация может быть чище, первый способ, где ясно, какой день недели вы редактируете.

Спасибо

Ответы [ 2 ]

3 голосов
/ 10 декабря 2011

Я бы никогда не использовал ваш первый вариант. В конечном итоге вы повторитесь повсюду, чтобы выполнить определенный раздел кода для каждого дня недели. Второй вариант приведет к гораздо более приятному коду в будущем.

1 голос
/ 11 декабря 2011

Во-первых, второй вариант намного лучше. Но вы, возможно, даже можете избавиться от MenuWeek и просто добавить поле даты или недели в MenuDay и выполнить фильтрацию таким образом, если только MenuWeek не должен содержать некоторые данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...