如何解决Djang中的未知场误差

2024-04-20 02:17:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个由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类的fieldset属性。我刚到Django,不知道出了什么问题。在管理员.py,我添加了“数字”字段,但错误仍然存在。我该怎么解决?谢谢你,新年快乐。你知道吗


Tags: 项目django代码py数据库truenumberreturn
1条回答
网友
1楼 · 发布于 2024-04-20 02:17:53

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 ^{} options section。你知道吗

相关问题 更多 >