简体   繁体   English

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

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

I want to display one form for superuser and another one for others stuff users. 我想为超级用户显示一种表单,为其他东西用户显示另一种表单。 For example, the only superuser can fill/edit fields like author, likes_count, views_count... 例如,唯一的超级用户可以填充/编辑诸如author,likes_count,views_count ...之类的字段。

How can I do it? 我该怎么做?

You need to customize corresponding ModelAdmin for your model. 您需要为模型自定义相应的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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM