Так что я уже некоторое время использую 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
У меня также есть другая модель 'Team', у которой есть ManyToMany с LandmarkGroup, но я не собираюсь публиковать ее здесь. У меня есть представление, где я запрашиваю все ориентиры, у которых есть группа ориентиров, у которой есть команда с тем же идентификатором команды, что и у меня:
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 для ориентира, поэтому в своем шаблоне я пытался :
"landmarkGroup" : {{ landmark.landmarkgroup.id }} }
но это не работает. Кто-нибудь знает, каким образом я могу получить идентификатор landmarkGroup для каждого ориентира в моем наборе? Нужно ли извлекать его, когда я делаю запрос? Я знаю, что могу ссылаться на каждую landmarkGroup в запросе, потому что я могу сделать 'landmarkgroup__team = device.team', но мне нужно иметь возможность ссылаться на этот объект в шаблоне