Django TabularInline 字段在更新内联字段时出错

Alk*_*dus 5 python django django-admin

我有一个像这样的模型

class Section(models.Model):
    section_title = models.CharField(max_length=200)
    section_tiles = models.ManyToManyField(Tile, blank=True)
    on_menu = models.BooleanField(default=False)
    section_is_active = models.BooleanField(default=True)

    class Meta:
        verbose_name = "Section"
        verbose_name_plural = "Sections"

    def __unicode__(self):
        return self.section_title



class Page(models.Model):
    page_title = models.CharField(max_length=200)
    page_sections = models.ManyToManyField(Section, blank=True)
    on_menu = models.BooleanField(default=False)
    page_is_active = models.BooleanField(default=True)

    class Meta:
        verbose_name = "Page"
        verbose_name_plural = "Pages"

    def __unicode__(self):
        return self.page_title
Run Code Online (Sandbox Code Playgroud)

在管理部分我有如下代码:

class SectionTabularInline(admin.TabularInline):
    model = Page.page_sections.through

    class PageAdmin(admin.ModelAdmin):
        inlines = [SectionTabularInline,]

        list_display =[
        'page_title',
        'on_menu',
        ]

        list_filter =[
        'on_menu',
        ]

        search_fields = [
        'page_title',
        ]

        ordering = ['page_title']

    admin.site.register(Page, PageAdmin)
Run Code Online (Sandbox Code Playgroud)

当我在页面的内联部分进行更改时,它给出错误“请更正下面的错误”。没有任何附加信息。如果我从页面中删除部分并保存它,那么我可以从头开始重新分配它们。有没有什么方法可以在不先删除它们的情况下更改它们?

rub*_*bmz 0

来自:在 Django Admin 中“通过”内联保存 M2M

我发现我的问题:如果你想要多对多关系,你需要保留原始模型的主键(id)。