繁体   English   中英

使用Django模型表单时如何访问模板中的外键相关字段

[英]How to access a foreign key related field in a template when using Django model form

我的目标

访问父模型ParentModel中的字段name ,并在模板中的form instance中显示其内容。 例如,让字段parentChildModel中的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM