Django模型多种吸气剂

Django模型多种吸气剂,django,methods,admin,models,getter,Django,Methods,Admin,Models,Getter,我想得到一个与模型a相关的对象列表,其中有很多与模型B相关的对象,例如,就餐者(a)确认参加用餐(B)。但我不确定我应该用什么吸气剂。实际上,我想这样做是为了在管理面板中显示关联的对象。下面包含的方法是我的一次失败尝试 class Meal(models.Model): diners = models.ManyToManyField(User, through='Attendance', related_name="eating", blank=True) def diners

我想得到一个与模型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
你能帮忙吗?
谢谢

正如ilvar建议的那样,删除diners方法并使用self.diners.all()获取dine方法中的对象。related_name='eating'用于获取用户的有人出席的用餐,相反。

正如ilvar所建议的,删除diners方法并使用self.diners.all()获取用餐方法中的对象。related_name='eating'用于获取用户的有人出席的餐食,相反。

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


因此,解决方案是删除
list\u display
中的引用,并让Django处理它。这是Django 1.4.3版。

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


因此,解决方案是删除
list\u display
中的引用,并让Django处理它。这是Django 1.4.3中的内容。

self.diners.all()不是您需要的吗?self.diners.all()不是您需要的吗?谢谢您的回复。因此,在用餐模型中,我放置:
def eating(self):返回self.diners.all()
并在MealAdmin文件中放置:
class MealAdmin(admin.ModelAdmin):list_display=('summary','when','host','url','diners')pass admin.site.register(用餐,MealAdmin)
这给了我一个错误:异常类型:配置不正确的异常值:“MealAdmin.list_display[4]”,“diners”是一个不受支持的ManyToManyField。@user77510 list_display不支持ManyToManyField。如果您想在admin change_列表中显示晚餐字段的项目,您需要编写一些方法来直接呈现列的内容,参考文献是的,我已经看到了,这就是这个线程的开始方式。我试着用上面的方法,按照你上面的方法,但是我遇到了上面的问题。那种方法似乎不起作用。你认为呢?Thanks@user77510只需输出所需的html代码段。例如,按其uuunicode显示所有晚餐将是“return','.join(map(unicode,self.diners.all())”。如果你仍然感到困惑,你可以开始一个关于实现方法的新问题。谢谢你的回答。因此,在用餐模型中,我放置:
def eating(self):返回self.diners.all()
并在MealAdmin文件中放置:
class MealAdmin(admin.ModelAdmin):list_display=('summary','when','host','url','diners')pass admin.site.register(用餐,MealAdmin)
这给了我一个错误:异常类型:配置不正确的异常值:“MealAdmin.list_display[4]”,“diners”是一个不受支持的ManyToManyField。@user77510 list_display不支持ManyToManyField。如果您想在admin change_列表中显示晚餐字段的项目,您需要编写一些方法来直接呈现列的内容,参考文献是的,我已经看到了,这就是这个线程的开始方式。我试着用上面的方法,按照你上面的方法,但是我遇到了上面的问题。那种方法似乎不起作用。你认为呢?Thanks@user77510只需输出所需的html代码段。例如,按其uuunicode显示所有晚餐将是“return','.join(map(unicode,self.diners.all())”。如果您仍然感到困惑,您可以开始一个关于实现方法的新问题。