如何在使用 For 循环遍历 Django 模板中 ModelForm 的所有字段时访问单个字段?

菜鸟87

我有一个模型,它有四个 ForeignKey 字段,所以它们是表单中的下拉字段。

class Package(models.Model):
    patient=models.ForeignKey(Patient, on_delete=CASCADE)
    diagnosis=models.ForeignKey(Diagnosis, on_delete=CASCADE)
    treatment=models.ForeignKey(Treatment, on_delete=CASCADE)
    patient_type=models.ForeignKey(PatientType, on_delete=CASCADE)
    date_of_admission=models.DateField(default=None)
    max_fractions=models.IntegerField(default=None)
    total_package=models.DecimalField(max_digits=10, decimal_places=2)

表格.py:

class PackageForm(ModelForm):
    class Meta:
        model=Package
        fields='__all__'
        widgets={
           "patient_type" : forms.Select(attrs={"onblur":"mf();"}),
           "max_fractions" : forms.NumberInput(attrs={"onfocus":"mf();", "onblur":"tp();"}),
           "total_package" : forms.NumberInput(attrs={"onfocus":"tp();", "onblur":"onLoad();"}),
           'date_of_admission': DateInput(attrs={'type': 'date'}),

视图.py:

def package_view(request):
    if request.method=='POST':
        fm_package=PackageForm(request.POST, prefix='package_form')
        if fm_package.is_valid():
            package=fm_package.save()
            IpdReport.objects.create(patient=package.patient, package=package)
            fm_package=PackageForm(prefix='package_form')
        return render (request, 'account/package.html', {'form5':fm_package})
    else:
        fm_package=PackageForm(prefix='package_form')
        return render (request, 'account/package.html', {'form5':fm_package})

模板:

<form action="" method="post" novalidate>
        {% csrf_token %}
        {{form5.non_field_errors}}
        {% for fm in form5 %}
        <div>
            {{fm.label_tag}}
            {{fm}}
            <span>{{fm.errors|striptags}}</span><br><br>
        </div>
        {% endfor %}
        <button type="submit" id="savebtn">Save</button>
    </form>

现在,我想要的是在模板中的所有外键字段旁边插入一个锚标记,以将一个新对象添加到原始表中。例如,在“患者”下拉字段旁边的“添加患者”选项,单击时,将显示一个带有“患者”表单的新小窗口。用户输入新患者的数据并保存,下拉菜单中会显示相同的名称。

但是当我在模板中使用 For 循环时,我将如何访问这些外键字段并应用选项?请问有什么建议吗?

安杰伊·德乌戈什

如果这不是问题,我将不再使用“forloop”来渲染所有字段。相反,我会使用 notation: form.field 来呈现不同的字段。所以它看起来像:

{{ form.patient.label_tag }}
{{ form.patient }}

以这种方式浏览字段应该更容易,但当然它需要更多的输入:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Django ModelForm 中乘以字段?

如何在Django模板中循环遍历日期时间范围

如何在 django 上的 modelform 上获取所有字段

如何在Django ModelForm中设置基于用户的表单字段选择(使用django-allauth)

如何用 TextInput 替换 Django ModelForm 中的 Choices 字段

如何在 Django ModelForm 中获取实例

如何在Django modelform中执行查询?

如何在Django ModelForm中显示选择

如何在Django模板中访问django ManyToMany字段

在Django模板中循环遍历多个列表

循环遍历 Django 模板中的列表

从模板中的Django模型循环遍历JSON

在Django2.1中提交后,如何在modelform中获取ckeditor字段值?

在Django ModelForm中动态更改字段选择

Django ModelForm:排除不在Model中的字段

无法覆盖Django ModelForm中的“模型”字段

如何在Django ModelForm中添加表单作为字段属性

如何在Django中为继承的模型属性创建通用的modelform字段验证器?

如何在Django ModelForm Factory中呈现不可编辑的字段

如何预填充Django ModelForm字段

如何在 Django 模板中优化循环?

Django ModelForm 不显示所有字段

使用ModelForm在Django中更新具有唯一字段的模型

如何遍历带有django模板中的列表的字典?

如何在 Django 模板中的字段中获取具有特定值的所有对象的计数?

使用Django ModelForm时标记必填字段的标签

如何在 Django 模板中循环这些组中的所有组和用户?

Django 模板循环遍历具有父 ID 或 PK 的项目

Django如何在单个modelForm中排除字段,仅用于updateview而不是createview?