Отправил вопрос вчера, но я не был слишком ясен в отношении того, что я пытаюсь. Я изо всех сил пытаюсь найти полезные уроки о том, как лучше всего достичь этого, поэтому очень важно подтолкнуть вас в правильном направлении.django featured content field
Я создал модель, которая ссылается на django_content_type. Моя идея - использовать эту модель для ссылки на другие модели, чтобы они могли быть помечены как «отличное» содержимое, без необходимости добавлять новое поле «isFeatured» для каждой модели.
Все, что я хочу сделать, это установить флажок в формах моего администратора для каждой модели, который указывает, включен ли контент или нет.
class FeaturedContent(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
Во-первых, это правильный подход?
Нужно ли создать пользовательское поле формы/модели? и как мне ввести это поле в шаблон администратора?
Я искал внутри (django.contrib.contenttypes) generic.py, и вы можете четко видеть, где загружаются данные шаблона, а также какой шаблон используется. Мне интересно, возможно, мне нужно расширить этот класс, а не писать собственное поле?
Спасибо за любую помощь,
Джеймс
Это действительно потрясающая идея. Доминик, спасибо :) – Crungmungus
Я немного опоздал, но этот способ не позволит вам получать качественный контент на разных моделях так же легко, как подход ContentType. Вам придется индивидуально запрашивать каждую отдельную модель для этого контента, а не только запрашивать модель FeaturedContent в подходе OP –