我试图让TabularInline与多对多关系一起工作,但我只能让关系对象显示出来。如果我使用外键关系,它可以正常工作。
所以,让我们说这是我的多对多关系:
# Jobs have many workers, and workers can be assigned to many jobs
class Job(models.Model):
workers = models.ManyToManyField(Worker, related_name='jobs')
class Worker(models.Model):
name = models.CharField(max_length=255)
# workers relationships with other models
insurance = models.ForeignKey(Insurance, null=True, blank=True, default=None)
location = models.ForeignKey(Location, null=True, blank=True, default=None)
这与TabularInline不能很好地协作,因为它只显示Job_Worker对象。
所以我想知道是否有某种方法可以让关系看起来像是一个外键关系?例如,worker获取中间表的外键,并使用“through”。最终的结果是它为TabularInline“开箱即用”。
谢谢。
答案 0 :(得分:1)
我担心你不能使用股票Django工具。它是好的。它阻止您修改多对多的另一端的相关对象,实际上可能被其他实例使用。
如果您感到绝望并且必须完全按照您的描述进行操作,那么您唯一的方法就是为内联管理员创建自定义表单。它也是described in the documentation。