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

How can I display form in django admin depending on user, Django

我想为超级用户显示一个表单,为其他用户显示另一个表单。 例如,唯一的超级用户可以 fill/edit 字段,如作者、likes_count、views_count...

我该怎么做?

您需要为您的模型定制相应的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)