How to hide some fields in django-admin?

后端 未结 4 2063
猫巷女王i
猫巷女王i 2021-02-01 00:43
class Book(models.Model):
    title = models.CharField(..., null=True)
    type = models.CharField(...)
    author = models.CharField(...)

I have a sim

4条回答
  •  渐次进展
    2021-02-01 00:52

    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
    

提交回复
热议问题