0
考慮這些僞模式:Django的ORM - 更新視圖形式縮寫與外鍵關係
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是什麼,但是在那個查詢上調用values()會返回額外的字段。
so,問題:在這種情況下構建最初的字典有什麼好方法?