我的关系如下:
class Question(models.Model):
qid = models.PositiveIntegerField(primary_key=True)
content = models.CharField(max_length=128)
class Answer(models.Model):
answerid = models.PositiveIntegerField(primary_key=True)
content = models.CharField(max_length=128)
question = models.ForeignKey(Question)
class AnswerInline(admin.StackedInline):
model = Answer
readonly_fields = ('answerid',)
extra = 0
class QuestionAdmin(admin.ModelAdmin):
inlines = [AnswerInline]
exclude = ('id')
list_display = ('content',)
admin.site.register(Question,QuestionAdmin)
假设我有一个问题,即A,我对此问题没有任何答案。 所以,当我添加A的答案时。没关系。但是,我尝试添加另一个答案,系统输出错误MultiValueDictKeyError:
在QueryDict中找不到“密钥'oam_answer_set-0-answerid':...
因为'qid'和'answerid'都不是AutoField。因此,当我保存对象时,django admin无法在数据库中插入新行(缺少主键)。
AutoField被声明为IntegerField。但是,我希望主键的字段类型是PositiveIntegerField。出于这个原因,我如何自定义AutoField?
由于
答案 0 :(得分:0)
尝试使用管理员注册答案模型。
...
admin.site.register(Answer)
位于admin.py的底部。您正在使用从ModelAdmin继承的内联字段(特别是readonly_fields),但您可能没有注册该模型。