Рассмотрим эти модели псевдо:Django ORM - UpdateView форма инициалов с ForeignKey отношений
class City(models.Model):
name = models.CharField()
region = models.ForeignKey(Region)
class Region(models.Model):
name = models.CharField()
country = models.ForeignKey(Country)
class Country(models.Model):
name = models.CharField()
и форма, как это:
class MyForm(forms.Form):
city = forms.CharField()
region = forms.CharField()
country = models.CharField()
Я хотел бы мой UpdateView, чтобы показать текущие значения, так что я имеют начальную настройку так:
model_initial = City.objects.filter(id=self.object.id).values()[0]
form = MyForm(initial=model_initial)
, который является своего рода глупым, потому что self.object уже доступен, поэтому я может сделать отображение значения вручную уже
Во всяком случае, это работает, но отношения не учитываются, так что я мог бы сделать:
model_initial = City.objects.filter(id=self.object.id).values()[0]
model_initial.update({'region':Somequery, 'country':Somequery})
form = MyForm(initial=model_initial)
Но это будет довольно противным и, вероятно, не нужно. Я попытался увидеть, что select_related мне руки, но при вызове значений() в этом запросе doenst возвращают дополнительные поля.
так, вопрос: Какой хороший способ построить исходный dict в этом случае?