Django Inline Formset:在模板中呈现父外键值

问题描述

我已经查看了许多建议,但无法让它发挥作用。

models.py

class TestOrder(models.Model):
        test_item = models.ForeignKey(TestItem,on_delete=models.CASCADE,limit_choices_to={'is_active': True})
        value = models.CharField(max_length=100,null=True,blank=True)
        report_id = models.ForeignKey('reports.Report',on_delete=models.CASCADE)

class TestItem(models.Model):
    name = models.CharField(max_length=64)
    group = models.ForeignKey(Group,related_name="test_item_group",limit_choices_to={'is_active': True})
    category = models.ForeignKey(Category,related_name="test_item_category",limit_choices_to={'is_active': True})

views.py

def create_test_result(request,pk):
    context={}
    report = Report.objects.get(pk=pk)
    TestOrderInlineFormSet = inlineformset_factory(Report,TestOrder,fields=('test_item','value',),extra=0)
    if request.method == "POST":
        ....
    context['formset']= TestOrderInlineFormSet(instance=report)
    return render(request,"tests-result/test_result.html",context) 

test_result.html

{{ formset.management_form }}
{% csrf_token %}
{% for form in formset %}
    {{form.id}}
    <div class="form-row">
        <div class="col-md-5">
            <h6>{{form.test_item}}</h6>
            <small>{{form.test_item.group}}{{form.test_item.category}}</small>
        </div>
        <div class="col-md-2">
            {{form.value}}
        </div>
    </div> 
{% endfor %}

form.test_item 给了我选择选项,这基本上是我想成为文本,但我想我可以用与 readonly 相关的小部件属性来弄清楚。但我不知道如何显示 form.test_item.group、category 或其他值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)