【发布时间】:2015-10-26 09:13:54
【问题描述】:
我有以下型号。
class user(models.Model):
location = models.ManyToManyField(Locations, blank=True, null=True)
class Locations(models.Model):
location_id = models.AutoField(primary_key=True, verbose_name='location Id')
location_name = models.CharField(max_length=512, unique=True, null=True, blank=True, verbose_name='location Name')
我想获取特定用户的所有位置。我写了这个查询
location_list = user.location.through.objects.values('locations_id', 'locations,').filter(user_id=user_id)
pprint.pprint(location_list)
它给出了这个结果;
[<user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>, <user_location: user_location object>]
【问题讨论】:
-
location.through是什么? -
引用此
http://stackoverflow.com/questions/14306427/django-accessing-raw-many-to-many-created-table-fields -
user.location.all()怎么样?它会为您提供特定用户的所有位置。 -
如果将名称更改为正确的复数形式将有助于清晰:
location =->locations =和class Locations->class Location。
标签: django orm many-to-many