Как поставить в качестве аргумента админ для двух разных типов контента
Я нуб Django и DB, но я работаю над сайтом, на котором есть и блоги, и статьи. Они созданы в админ в своих соответствующих полях, и в основном у меня есть класс "FeaturedPost
"в model.py, где для одного из атрибутов" контент "я хочу иметь возможность выбирать из доступных блогов или статей.
Я знаю, что если я хочу отобразить содержимое в блоге, я бы сделал
models.ForeignKey(Blogs, related_name="w/e")
но как мне абстрагировать это, чтобы я мог выбрать из двух типов контента? Был бы GenericForeignKey
быть полезным?
Я использую Fein-CMS, если это поможет с чем-то в этом случае.
1 ответ
Правильный, GenericForeignKey
это то, что вам нужно. т.е.
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
class FeaturedPost(models.Model):
...
content_type = models.ForeignKey(ContentType)
content_object_id = models.PositiveIntegerField()
content = GenericForeignKey('content_type', 'content_object_id')
Чтобы редактировать их в админе, вам нужно использовать общий встроенный