我正在用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')})
当我刷新管理页面时,它显示“为Product指定的未知字段(数字)。请检查ProductAdmin类的fieldset属性”。我是Django的新手,不确定出现什么问题。在admin.py中,我添加了“数字”字段,但错误仍然存在。我该如何解决?非常感谢,新年快乐。
答案 0 :(得分: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)