我尝试使用Django管理员显示和添加评论,但Comment
模型使用GenericForeignKey
参考。
# in model.py
class Comment(models.Model):
type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
object = generic.GenericForeignKey('type')
text = models.TextField()
# in admin.py
class CommentAdmin(admin.ModelAdmin):
list_display = ('type', 'object', 'text')
fields = ('type', 'object', 'text')
admin.site.register(Comment, CommentAdmin)
但Django会产生错误:
' CommentAdmin.fields'指对象'对象'缺少的 形式。
如何解决?
答案 0 :(得分:3)
GenericForeignKey
不是数据库中的字段;通过设置object_id
和type
,您可以通过api为您定义的对象启用它,因此您不需要在表单中使用它。
要修复它,只需将其取出并放入object_id:
fields = ('type', 'object_id', 'text')