Django管理员用户的对象

时间:2012-01-22 07:15:06

标签: django django-models django-admin django-views

我想允许用户拥有自己的Video对象的管理界面。我打算编写一些视图,允许设置“已发布”或删除对象等属性。

我已经开始考虑使用django的管理站点了 - 但这似乎对我想要的东西过于复杂(只是删除/设置已发布的属性)。

一种方法比另一种更好吗?从头开始或使用管理站点写一些东西?

如果我从头开始写一些东西 - 实现ModelAdmin样式操作的正确方法是什么(即delete_selected(queryset,request))

1 个答案:

答案 0 :(得分:4)

这正是管理员应该使用的!怎么会太复杂?即使编写一些HTML行也需要更长的时间。

如果您自己构建,无论多么简单,您都必须定义列出对象的视图,验证输入,检查权限,编写HTML,实现某种映射到python代码的多动作系统,... 。

假设您不想这样做:

您希望通过multiple admin sites 来制作overriding the queryset method on a 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)