簡體   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