我有一个名为Question
我定义了两个模型Question
and Alternative
在 models.py 中如下:
class Question(models.Model):
question = models.CharField(max_length=255, blank=False, null=False)
chapter = models.ForeignKey(Chapter, on_delete=models.CASCADE)
rating = models.IntegerField(default=1)
class Alternative(models.Model):
alternative = models.CharField(max_length=255, blank=False, null=False)
question = models.ForeignKey(Question, on_delete=models.CASCADE)
我做了一个自定义表格AlternativeForm
我创建了一个额外的字段,我希望它出现在我的Alternative forms
也Question
管理视图,其中替代字段将出现在内联视图中但多余的字段值不会保存在DB中(因为我想对该字段的值进行一些手动操作)。我的forms.py
如下:
class AlternativeForm(forms.ModelForm):
extra_field = forms.BooleanField(required=False)
def save(self, commit=True):
extra_field = self.cleaned_data.get('extra_field', None)
# will do something with extra_field here...
return super(AlternativeForm, self).save(commit=commit)
class Meta:
model = Alternative
fields = '__all__'
并在我的admin.py
我在它们之间建立了内联关系,如下所示:
class AlternativeInline(admin.TabularInline):
form = AlternativeForm
model = Alternative
@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
inlines = [AlternativeInline,]
@admin.register(Alternative)
class AlternativeAdmin(admin.ModelAdmin):
model = Alternative
form = AlternativeForm
我越来越AttributeError: Unable to lookup 'extra_field' on Alternative or AlternativeInline
在这种情况下。我想显示那些额外的字段 in the 内联视图 of Question
应用程序管理视图。有什么办法可以做到这一点,或者我目前的方法有什么问题。
谢谢。