[英]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.