如何隐藏django-admin中的某些字段? [英] How to hide some fields in django-admin?

查看:270
本文介绍了如何隐藏django-admin中的某些字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


title = models.CharField(...,null = True)
type = models.CharField(.. 。)
author = models.CharField(...)

我有一个简单的类在models.py。在管理员中,我希望在保存的书的类型为1时隐藏本书的标题(在书详细信息表格中)。
以最简单的方式这样做?

解决方案

您将在您的模块中创建 admin.py (可能 book

  class BookAdmin(admin.ModelAdmin):
list_display =(pk,get_title_or_nothing)
/ pre>

类中:

  class Book:
...
def get_title_or_nothing(self):
if self.type == WEIRD_TYPE:
return
return self.title

更新:

  class BookAdmin(admin.ModelAdmin):
list_display =(pk,get_title_or_nothing)

def get_form(self,request,obj =无,** kwargs):
如果obj.type ==1:
self.exclude =(title,)
form = s uper(BookAdmin,self).get_form(request,obj,** kwargs)
return form


class Book(models.Model):
    title = models.CharField(..., null=True)
    type = models.CharField(...)
    author = models.CharField(...)

I have a simple class in models.py. In admin I would like to hide title of the book (in book details form) when type of the saved book is 1. How do this in a simplest way?

解决方案

You are to create admin.py in your module (probably book)

class BookAdmin(admin.ModelAdmin):
    list_display = ("pk", "get_title_or_nothing")

In Book class:

class Book:
    ...
    def get_title_or_nothing(self):
        if self.type == WEIRD_TYPE:
            return ""
        return self.title

UPDATED:

class BookAdmin(admin.ModelAdmin):
    list_display = ("pk", "get_title_or_nothing")

    def get_form(self, request, obj=None, **kwargs):
        if obj.type == "1":
            self.exclude = ("title", )
        form = super(BookAdmin, self).get_form(request, obj, **kwargs)
        return form

这篇关于如何隐藏django-admin中的某些字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆