[英]How to access a foreign key related field in a template when using Django model form
我的目標
訪問父模型ParentModel
中的字段name
,並在模板中的form instance
中顯示其內容。 例如,讓字段parent
是ChildModel
中的foreign key
,如下所述。
我試過的
在模板中以{{ form.parent.name }}
訪問表單中的父字段
收到的錯誤
Tried looking up form.parent.name in context
模型.py
class ParentModel(models.Model):
name = models.CharField()
def __str__(self):
return self.name
class ChildModel(models.Model):
parent = models.ForeignKey(ParentModel)
def __str__(self):
return self.parent.name
表格.py
class ChildModelForm(ModelForm):
class Meta:
model = ChildModel
fields = '__all__'
widgets = {'parent': forms.Select(),}
視圖.py
def childView(request, pk):
template = 'template.html'
child = ChildModel.objects.get(parent=pk)
form = ChildModelForm(instance=child)
if request.method == 'POST':
form = ChildModelForm(request.POST, instance=child)
if form.is_valid():
form.save()
else:
form = ChildModelForm(instance=child)
context = {'form': form, }
return render(request, template, context)
模板.html
<form method="POST" action="">
{% csrf_token %}
{{form.parent.name}}
<button type="submit">Save</button>
</form>
現在子模型窗體顯示pk
我要顯示父字段的名稱
我也嘗試過在表單中使用這個 Django 訪問外鍵字段,但它對我不起作用。
據我了解,您想顯示表單實例的值。 你可以做:
form.instance.parent.name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.