我有一个这样的模型:
class MyProfile(models.Model):
club = models.ManyToManyField(Club, default=None)
city = models.ManyToManyField(City, default=None)
.
.
在视图中:
user = User.objects.get(pk=id)
profile = MyProfile.objects.select_related().get(user=user)
例如profile.club.select_related()
我可以找到用户的俱乐部。但是我想在循环中这样做。
fileds = [car, club]
for f in fileds:
print getattr(profile, f)
在输出中我有<django.db.models.fields.related.ManyRelatedManager object at 0x9876545>
但是profile.club.select_related()
我可以收到用户的俱乐部名称。我不能在循环中使用此查询。有没有办法将这种查询用于模型字段列表?
提前致谢
答案 0 :(得分:5)
此字段与MyProfile类中的“objects”字段相同。添加.all()并将其强制转换为列表。
fields = [car, club]
for f in fields:
z = getattr(profile, f)
print list(z.all())