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

标签 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

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

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)

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

最佳答案

发件人:Save M2M "Through" Inlines in Django Admin

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

关于python - Django TabularInline 字段在更新内联字段时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47610211/

相关文章:

python - 添加 list_filter 时如何修复/设置 django modeladmin 更改列表中的列宽?

python - 使用 Django 存储/检索/编辑项目特定数据

python - 使用 get_inline_instances 覆盖添加权限?

python - Pyplot/matplotlib 线图 - 相同颜色

python - Selenium (Python)+ react

python - 如何舍入列表中的下一个数字?

python - Azure Bing 图像搜索客户端抛出找不到资源的错误

python - Django:动态 LOGIN_URL 变量

django - 如何从 Django View 中的绝对 url 获取相对 url?

javascript - Django-tinymce 不工作;获取一个普通的文本区域