【问题标题】:How to solve Unknow Field Error in Django如何解决 Django 中的未知字段错误
【发布时间】:2019-05-28 10:46:52
【问题描述】:

我正在用 Django 2.0.2 构建一个项目。我想要做的是根据数据库自动更改管理页面中的字段集之一。这是我的代码的一部分:

models.py
class Product(BaseModel):
    number=model.IntergerField("Food", null=True, blank=True, help_text="Food")

    @property
    def number(self):
        return 10 #just return a number for testing

admin.py
class ProductAdmin(admin.ModelAdmin):
    list_display=("number")    
    fieldsets=(('<h1>Food</h1>'), {'fields':('number')})

当我刷新管理页面时,它显示“为产品指定的未知字段(数字)。检查类 ProductAdmin 的字段集属性”。我是 Django 新手,不知道出了什么问题。在 admin.py 中,我添加了“数字”字段,但错误仍然存​​在。我该如何解决?非常感谢,新年快乐。

【问题讨论】:

    标签: python django database django-models django-admin


    【解决方案1】:

    number 不是一个字段,它是一个属性。您可以将此添加到readonly_fields

    class ProductAdmin(admin.ModelAdmin):
        list_display=('number',)
        readonly_fields = ('number',)
        fieldsets=(('<h1>Food</h1>'), {'fields':('number')})

    您还应该在您的资源中添加short_description,例如:

    class Product(BaseModel):
        number=model.IntergerField("Food", null=True, blank=True, help_text="Food")
    
        # no decorator
        def number(self):
            return 10 #just return a number for testing
        number.short_description = "The number"
        number = property(number)

    documented in the ModelAdmin options section一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2020-09-03
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多