Как решить Unknow Field Error в Django - PullRequest
0 голосов
/ 01 января 2019

Я строю проект по проекту 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».Я новичок в Django и не уверен, что идет не так.В admin.py я добавил поле «число», но ошибка все еще существует.Как я могу решить это?Большое спасибо и с новым годом.

1 Ответ

0 голосов
/ 01 января 2019

number - это , а не поле, это свойство .Вы можете добавить это к readonly_fields:

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

Вы также должны добавить short_description к вашей собственности, например:

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

    # <b>no</b> decorator
    def number(self):
        return 10 #just return a number for testing
    number.short_description = "The number"
    number = property(number)

, как указано , документированное вModelAdmin секция опций .

...