Администратор Django для объектов пользователя - PullRequest
1 голос
/ 22 января 2012

Я хотел бы разрешить пользователю иметь интерфейс администратора для своих собственных объектов видео. Я планировал написать несколько представлений, позволяющих устанавливать такие атрибуты, как «опубликованные» или удалять объекты.

Я начал изучать использование сайта администратора django, но кажется, что это может быть слишком сложно для того, что я хочу (просто удаляя / устанавливая опубликованный атрибут).

Один подход лучше другого? Писать что-то с нуля или с помощью админа сайта?

Если бы я написал что-то с нуля - как правильно выполнить действия в стиле ModelAdmin (например, delete_selected (queryset, request))

1 Ответ

4 голосов
/ 22 января 2012

Это именно то, для чего должен использоваться админ!Как это может быть слишком сложно?Даже написание нескольких строк HTML займет больше времени.

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

Предполагая, что вы не хотите этого делать:

Вы захотите создать несколько сайтов администрирования и отфильтровать результаты администрирования втолько те, которые принадлежат пользователю через , переопределяя метод queryset в ModelAdmin

# pasted from docs
class MyModelAdmin(admin.ModelAdmin):
    def queryset(self, request):
        qs = super(MyModelAdmin, self).queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)
...