首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何基于用户权限在admin.py中加载类

如何基于用户权限在admin.py中加载类
EN

Stack Overflow用户
提问于 2017-08-12 07:57:07
回答 1查看 108关注 0票数 2

我一直在为song link submissiondjango中开发一个应用程序,我想使一些字段不可编辑在管理区域的工作人员用户,但超级用户可以编辑它。

代码语言:javascript
运行
复制
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from django.contrib.auth.models import User

# Register your models here.
from .models import SongLinks


class SongLinksAdmin(admin.ModelAdmin):
    if request.user.is_staff:
        readonly_fields=('ip','dedicated_to','dedicated_message')
        list_display = ('song_link','dedicated_to','dedicated_message','ip')
    else: 
        list_display = ('song_link','dedicated_to','dedicated_message','ip')
admin.site.register(SongLinks, SongLinksAdmin)

这给了我一个错误:

如果request.user.is_staff: NameError:未定义名称‘请求’

这是怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-12 08:05:28

代码语言:javascript
运行
复制
@admin.register(SongLinks)
class SongLinksAdmin(admin.ModelAdmin):
    list_display = ('song_link', 'dedicated_to', 'dedicated_message', 'ip')

    def get_readonly_fields(self, request, obj=None):
        if not request.user.is_superuser:
            return ('ip', 'dedicated_to', 'dedicated_message')
        return ()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45647940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档