我有两个模型,ManyToMany
关系:
App1
:
class Foo:
fld = models.CharField(null=True, blank=True)
App2
:
class Bar:
foos = models.ManyToManyField(Foo, blank=True)
现在,在Bar
的管理员视图中,我想提交foos
。我不能简单地将foos
列为ManyToMany字段,我收到错误消息。
所以我试着这样做:
class BarFooInline(admin.TabularInline):
model = Bar_foos
class BarAdmin(admin.ModelAdmin):
model = Bar
inlines = [BarFooInline, ]
admin.site.register(Bar, BarAdmin)
我通过查看Meta of Bar得到了名字Bar_foos
。 Bar.foos.through
将其作为正确的models.Bar_foos
。但由于我没有明确地命名通过,它并不是真的在models.py
中,所以我无法导入它。我该怎么办?
我现在不想创建一个,因为我已经在表格中有一大堆关联信息,我感觉神奇的数据不会迁移到新命名的关联中实体的表格(https://mounirmesselmeni.github.io/2013/07/28/migrate-django-manytomany-field-to-manytomany-through-with-south/)。
此外,我无法将ManyToMany
字段从App2
移至App1
。
答案 0 :(得分:2)
class BarFooInline(admin.TabularInine):
models = Bar.foos.through
class BarAdmin(admin.ModelAdmin):
model = Bar
inlines = [BarFooInline]
exclude = ['foos']