У меня есть модель Content
. Объекты этой модели должны быть единственными объектами, которые видит пользователь.Соберите отдельные модели в Django
Но объекты должны обрабатывать изображения, видео, статьи и т.д.
Я думаю, что лучшим решением было бы иметь модель для каждого типа контента:
class Image(models.Model):
image = ImageField()
class Article(models.Model):
title = CharField(max_length=100)
text = TextField()
class Video(models.Model):
url = URLField()
И содержание будет потом управляться с чем-то вроде
class Content(models.Model):
content = ForeignKey(to=?)
на самом деле Content
объект может иметь более чем 1 изображение, видео, статьи и т.д. Так что я думаю, мне нужно будет создать другая модель ContentSet
, которая может иметь 1 или несколько изображений, видео или статей.
Преимущества будет, что я могу классифицировать, есть комментарии и т.д. в Content
объекта, а не обработки этого во всех моделях Image
, Article
, Video
.
Мне нужен совет, как это сделать. Это хорошая стратегия? Будет ли, вероятно, лучше использовать GenericRelation
? Какую модель должна указать мой ForeignKey
в моей модели Content
?
Надеюсь, моя идея понятна. Я не знаю, какие сайты делают это, поэтому я не могу ссылаться ни на что, чтобы объяснить это лучше.
Похоже, работа для [рамок ContentTypes] (https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes /) и [generic relations] (https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#generic-relations), как вы упомянули. – Ngenator