我有一个模特:
class Employee(models.Model, MyMixin):
full_name = models.CharField(max_length=255)
items = models.ManyToManyField(Item, blank=True)
和mixin类:
class MyMixin(object):
def my_m2m(self, field):
field_value = getattr(self, field)
print(field_value)
// do something with many to many field
emp = Employee()
emp.my_m2m("items")
在控制台上打印employee.Item.None
时,它会给我emp.my_m2m("items")
的结果。
如果我emp.items.all()
它会给我结果,但我无法按名称得到它。
为什么不给出与之关联的项目列表?
我错过了什么吗?
答案 0 :(得分:1)
正如您所说,添加.all()
会得到结果,因此您需要将其添加到动态查找中:
field_value = getattr(self, field).all()