我有像
这样的模特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)
当我在页面的内嵌部分进行更改时,会发出错误"请更正以下错误。"没有任何其他信息。如果我从页面中删除部分并保存它,那么我可以从头开始重新分配它们。有没有办法改变它们而不先删除它们?
答案 0 :(得分:0)
发件人:Save M2M "Through" Inlines in Django Admin
我发现了我的问题:如果您想要多对多关系,则需要保留原始模型的主键(id)。