Django模型ManytoMany getters

时间:2012-03-29 01:12:41

标签: django methods admin models getter

我希望获得一个与模型A关联的模型A的对象列表,例如,模型B,例如食客(A)确认参加一顿饭(B)。但我不确定应该使用什么吸气剂。我实际上想要这样做以在管理面板中显示关联的对象。下面的方法是我做的一次尝试失败。

class Meal(models.Model):
    diners = models.ManyToManyField(User, through='Attendance', related_name="eating", blank=True)

    def diners(self):
        return self.eating
你能帮忙吗? 感谢

2 个答案:

答案 0 :(得分:1)

正如ilvar建议的那样,删除diners方法并使用self.diners.all()来获取Meal方法中的对象。 related_name ='eating'用于获取用户的就餐,反之。

答案 1 :(得分:0)

我到达此页时遇到与OP相同的问题。我最后只是删除了我的管理模型中list_display中对ManyToMany字段的引用。结果:在该应用程序的管理页面上,在ManyToMany字段名称下,出现了一个格式良好的多选列表小部件,其中显示了我的ManyToMany关系的可能值。

所以解决方案是删除list_display中的引用并让Django处理它。这是Django 1.4.3。