如何根据用户Django在django admin中显示表单

时间:2016-01-02 06:47:32

标签: python django forms django-forms django-admin

我希望为超级用户显示一个表单,为其他用户显示另一个表单。 例如,唯一的超级用户可以填写/编辑诸如author,likes_count,views_count ...

之类的字段

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您需要为模型自定义相应的ModelAdmin

<强> admin.py

from django.contrib import admin
from .forms import SuperuserForm, OtherForm


class MyAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        if request.user.is_superuser():
            kwargs['form'] = SuperUserForm
        else:
            kwargs['form'] = OtherUserForm

        return super(MyAdmin, self).get_form(request,obj=obj,**kwargs)