【发布时间】:2012-03-26 00:55:53
【问题描述】:
所以我使用 django 已经有一段时间了,它很棒。我最近遇到了一点问题,我确信有一种糟糕的方法可以让它工作,但我发现 Django 是它们通常内置了各种机制来做给你的东西。所以我没有找到的是:
这是我的模型:
class LandmarkGroup(models.Model):
Name = models.CharField(max_length=150)
Description = models.CharField(max_length=300, blank=True)
IsActive = models.BooleanField(default=True)
landmarks = models.ManyToManyField('Landmark', blank=True, null=True)
def __unicode__(self):
return self.Name
class Landmark(models.Model):
Name = models.CharField(max_length=150)
Description = models.CharField(max_length=300, blank=True)
Polygon = models.PolygonField()
IsActive = models.BooleanField(default=True)
objects = models.GeoManager()
def __unicode__(self):
return self.Name
我还有另一个模型“团队”,它与 LandmarkGroup 有一个多对多,但我不打算在这里发布它。我有一个视图,我在其中查询具有 landmarkgroup 的所有地标,该地标组的团队 ID 与我传入的团队具有相同的团队 ID:
def mobile_startup(request):
...
landmarkGroups = LandmarkGroup.objects.filter(team=device.team, IsActive=True)
landmarks = Landmark.objects.filter(landmarkgroup__team=device.team, IsActive=True)
...
return render_to_response('webservice/mobile_startup.html', {'landmarks': landmarks, 'landmarkGroups': landmarkGroups})
一切正常,我遇到的唯一问题是,我将这一切作为 JSON 返回到移动应用程序,并且我想为地标提供 landmarkGroup id,所以在我的模板中我一直在尝试:
"landmarkGroup" : {{ landmark.landmarkgroup.id }} }
但这不起作用。有谁知道我可以为我的集合中的每个地标获取 landmarkGroup ID 的任何方式?查询时需要提取吗?我知道我可以在查询中引用每个 landmarkGroup,因为我可以执行 'landmarkgroup__team=device.team',但我需要能够在模板中引用这个对象
【问题讨论】:
标签: django templates django-templates many-to-many