Üç modelim var: Adres, Adres_Konumlandırma (Address_id, ForeignKey olduğunda) ve Adres_dosyaları (burada Address_id, ForeignKey'dir).Django/görünümler - modele dönüp şablona dön
İlk adımda tüm adresleri yerelleştirmesiyle almak istiyorum. address_users i bir adresi için iki (veya daha fazla) kullanıcıları var ise
data = address.objects.select_related().all().annotate(
longitude=F('address_localisation__longitude'),
latitude=F('address_localisation__latitude')
)
ama bu (çünkü katılmadan modellerin) bana aynı adrese sahip iki (veya daha fazla) satırları verir: Ben kullanmaya çalıştı .
Yalnızca Adresleri ve bağlı yerelleştirmeleri almak istiyorum. i denedim Ne:
data = address.objects.prefetch_related('address_localisation_set').all()
for e in data.all():
for ee in e.address_localisation_set.all():
e.longitude = ee.longitude
e.latitude = ee.latitude
data = list(data.values('id',
'longitude',
'latitude'
))
data = json.dumps(data)
data = json.loads(data)
return JsonResponse(data, safe = False)
Ama bir hata götürüyor: "alanına anahtar kelimenin 'boylamı' çözülemiyor Seçimler şunlardır:. Id .. (Adres modelinden listelenen fileds)"
Anladığım kadarıyla ana modelde boylam/enlem alanlarım yok ... ama onları nasıl eklemeliyim?
Şablonda address_localisation_set ile yineleyebileceğimi biliyorum (bunu denemedim, ancak stackoverflow üzerinde çözüm buldum), ancak alanlar ekleyerek kaynak kodumun başka bir yerinde yararlı olabilir, bu yüzden nasıl yapacağımı bilmek istiyorum o.
zaman için şimdiden teşekkür ederiz
teşekkür ederiz! Bu benim problemimi çözüyor, düşündüğümden daha basit :) –