"Показывать" контент на веб-сайте Django

Я работаю над новым проектом Django, и клиент хочет "разместить" контент на домашней странице и в нескольких других разделах сайта. Контент в этом случае может быть постом в блоге, событием, новостной историей и т. Д. Каждый элемент будет иметь дату начала показа и конец показа времени.

В прошлом я делал это несколькими разными способами, но удивляюсь, есть ли у кого-нибудь замечательные методы архивирования.

2 ответа

Решение

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

Если вы активно используете объекты из определенных моделей, посмотрите на раздел об обратных родовых отношениях.

Я пытаюсь что-то подобное, используя фреймворк contenttypes, но проблема возникает при отображении отношений в административной области. Я пытался взломать это вместе, чтобы просто показать флажок "Избранное?" рядом с ним.

class FeaturedContent(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

Я еще не ясно, как реализовать флажок.

Другие вопросы по тегам