Подтвердить что ты не робот

Администратор Django ManyToMany inline "не имеет ошибки ForeignKey to"

Я настраиваю администратора 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)

При попытке просмотреть страницу администратора для добавления Quote на странице отображается сообщение об ошибке <class 'quotes.models.Tag'> has no ForeignKey to <class 'quotes.models.Quote'>. Этого не произошло, прежде чем я добавил встроенный. В чем проблема? Как правильно добавить Tag в качестве встроенного?

(Я потратил 20 минут на поиски ответа, я нашел похожие вопросы, но ни один из их ответов не работал у меня.)

4b9b3361

Ответ 1

Документация администратора содержит раздел, посвященный встраиванию отношений "многие ко многим". Вы должны использовать Quote.tags.through как модель для TagInline, а не Tag.