Создание функции FeaturedContent в Django с использованием типов содержимого - PullRequest
1 голос
/ 21 января 2010

Я использую структуру типов контента для создания функции «рекомендуемого содержимого» на моем сайте. Я в основном сделал это, определив модель следующим образом:

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

То, что я хотел бы сейчас сделать, - это установить флажок на каждой странице редактирования / создания модели в моей области администратора, который при пометке и отправке добавляет ссылку на контент в FeaturedContent. Если этот флажок не установлен, ссылка также удаляется.

Если есть более эффективные методы, пожалуйста, дайте мне знать. Из того, что я вижу, использование contenttypes - это путь.

Большое спасибо!

1 Ответ

0 голосов
/ 21 января 2010

Вам необходимо создать администратора с накоплением для каждой модели, для которой эта опция нужна администратору.

Примерно так:

class ObjectInline(admin.StackedInline):
    model = YourFancyModelthatisFeatured
    extra = 0

class FancyModelAdmin(admin.ModelAdmin):
    inlines = [ObjectInline]

Но это даст встроенные элементы в их виджете по умолчанию, поэтому вам также необходимо определить форму для настройки в виджете флажка.

...