Попытка получить навыки Django. Я хотел бы, чтобы класс с одним полем умножался. Поэтому у меня может быть больше одного, связанного с моим основным классом, с возможностью быть активным или нет (для будущих потребностей).
Так что мой подкласс будет выглядеть примерно так:Изучение Django - models.py ForeignKey или ManyToManyField или еще?
class Subclass(models.Model):
STATUS=(
('A', Active),
('U', Unactive)
)
status = modelsCharField(max_length=1, choices=STATUS)
name = models.CharField(some options)
На главном классе я хотел бы назвать его в качестве ссылки, но если я иду:
field=models.ManyToManyField(Subclass)
Он представлен как вторая таблица и для каждого объекта я должен выбирать из всех его сущностей. Поэтому, если у меня есть 2k сущности в подклассе, я должен прокрутить true все из них, чтобы найти мое соединение (например, по умолчанию для административной страницы)
Я не хочу этого. Все, что мне нужно, это 2 из 2k-объектов, которые подключены и отображаются в admin. И позже, когда те, у которых есть статус Active, будут отображаться на самой странице.
Так что я понял, я должен попробовать ForeignKey соотношение:
field=models.ForeignKey(Subclass, on_delegate=models.CASCADE)
Это дает мне ошибки о missing default values
во время миграции, хотя. Любая помощь будет приветствоваться, так как я немного застрял прямо сейчас.
Что вы на самом деле пытаетесь достичь? В вашем коде также много проблем с опечатками и форматированием. Ваш основной класс (основная модель) должен указывать на несколько записей вашего подкласса (подмодель)? – nmusleh
Это всего лишь примеры, опечатки - это мои вещи. Приходится сражаться с ними все время :(Моя задача состоит в том, чтобы закодировать что-то вроде ... адресной книги? Итак, у вас есть человек и его адрес, а также его старый адрес. Таким образом, основной класс - человек, подкласс - это список адресов. Но мне нужны только те, которые связаны с –
, если у вас есть что-то вроде человека и адреса, у адреса будет ForeignKey (Person), и он установит вас за тем, что вам нужно. Используйте InlineModalAdmin. Вероятно, вы не хотите использовать много для многих в этом случае, поскольку каждый адрес принадлежит одному человеку (вероятно). Пицца и начинка являются примером многих для многих (начинки на разных типах пиццы) https://docs.djangoproject.com/en/1.10/ref/ contrib/admin/# inlinemodeladmin-objects для способа обработки в admin. – AMG