我正在为以下模型设置Django管理员:

class Quote(models.Model):                                                  
    author = models.CharField(max_length=100)                               
    quote = models.CharField(max_length=1000)                               
    tags = models.ManyToManyField('Tag')                                    

class Tag(models.Model):                                                    
    name = models.CharField(max_length=100)                                 

使用以下代码:

class TagInline(admin.TabularInline):                                                                                               
    model = Tag                                                             

class QuoteAdmin(admin.ModelAdmin):                                         
    list_display = ('author', 'quote')                                      
    inlines = (TagInline,)                                                  

class TagAdmin(admin.ModelAdmin):                                           
    pass                                                                    

admin.site.register(Quote, QuoteAdmin)                                      
admin.site.register(Tag, TagAdmin)

当try 查看管理页面以添加Quote时,页面显示错误<class 'quotes.models.Tag'> has no ForeignKey to <class 'quotes.models.Quote'>.在我添加内联之前,这并没有发生.有什么问题吗?如何正确添加Tag作为内联?

(I spent a good 20 minutes searching for an answer; I found similar questions but none of their answers worked for me.)

推荐答案

Admin documentation有一个专门用于内联多对多关系的部分.您应该使用Quote.tags.through作为TagInline的模型,而不是Tag本身.

Django相关问答推荐

Django-无法显示基于字段值的元素

Django ORM多表一对多关系问题

在Django的个人页面中的问题

如何显示;Django认证系统;在模板中?

从多个数据库访问 Django 会话

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

Django 获取用户创建的对象,这些用户属于用户列表

如何在 Django 模板中的计数器上进行 for 循环中断?

- 不支持的操作数类型:DateField和DateField

初始填充 Django 表单

使用 Vagrant 进行端口转发时连接重置

在 Django 中使用 AuthenticationForm

使用 Django 1.5 实现多种用户类型

Django模板转义

整数的Python正则表达式?

从表单获取模型实例而不保存

Django 有 SmallIntegerField 的原因是什么?

Django - 一起为 2 个或更多字段创建唯一的数据库约束

Django 模型:delete() 未触发

如何使用或使用 Django 的模型过滤系统?