Значение 'list_display[0]' относится к 'answer_text', который не является вызываемым при использовании TabularInline
Я новичок в Django и создаю свое Quiz приложение. К сожалению, я столкнулся с The value of 'list_display[0]' refers to 'answer_text', which is not a callable ошибкой при регистрации моих моделей на admin.py. Вот коды
models.py
from django.db import models
from django.utils.translation import gettext_lazy as _
class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Updated(models.Model):
date_updated = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Quizzes(models.Model):
class Meta:
verbose_name = _("Quizz")
verbose_name_plural = _("Quizzes")
ordering = ['id']
category = models.ForeignKey(
Category, default=1, on_delete=models.DO_NOTHING)
title = models.CharField(max_length=255, default=(
'New Quiz'), verbose_name=_('Quiz Title'))
date_created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Updated(models.Model):
date_updated = models.DateTimeField(
verbose_name=_("Last Updated"), auto_now=True)
class Meta:
abstract = True
class Question(Updated):
class Meta:
verbose_name = _("Quizz")
verbose_name_plural = _("Quizzes")
ordering = ['id']
SCALE = (
(0, _('Fundamental')),
(1, _('Beginner')),
(2, _('Intermediate')),
(3, _('Advanced')),
(4, _('Expert')),
)
TYPE = (
(0, _('Multiple Choice')),
)
quiz = models.ForeignKey(
Quizzes, related_name='questions', on_delete=models.DO_NOTHING)
technique = models.IntegerField(verbose_name=_(
"Type of Question"), choices=TYPE, default=0)
title = models.CharField(verbose_name=_('Title'), max_length=255)
difficulty = models.IntegerField(verbose_name=_(
"Difficulty"), choices=SCALE, default=0)
date_created = models.DateTimeField(
auto_now_add=True, verbose_name=_('Date Created'))
is_active = models.BooleanField(
default=False, verbose_name=_('Active Status'))
def __str__(self):
return self.title
class Answer(Updated):
question = models.ForeignKey(
Question, related_name='answers', on_delete=models.DO_NOTHING)
class Meta:
verbose_name = _("Answer")
verbose_name_plural = _("Answer")
ordering = ['id']
admin.py
from django.contrib import admin
from . import models
@admin.register(models.Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = [
'name',
]
@admin.register(models.Quizzes)
class QuizAdmin(admin.ModelAdmin):
list_display = [
'id',
'title',
]
class AnswerIlineModel(admin.TabularInline):
model = models.Answer
fields = [
'answer_text',
'is_right'
]
@admin.register(models.Question)
class QuastionAdmin(admin.ModelAdmin):
fields = [
'title',
'quiz',
]
list_display = [
'title',
'quiz',
'date_updated',
]
inlines = [AnswerIlineModel, ]
@admin.register(models.Answer)
class AnswerAdmin(admin.ModelAdmin):
list_display = [
'answer_text',
'is_right',
'question',
]
Проблема в том, что когда я добавляю следующий код, я сталкиваюсь с тем, что answer_text и is_right не вызываются.
@admin.register(models.Answer)
class AnswerAdmin(admin.ModelAdmin):
list_display = [
'answer_text',
'is_right',
'question',
]
В чем моя ошибка? Спасибо