Eri*_*Kim 3 python django django-forms
我必须遵循forms.py并且models.py:
# models
class BHA_Component(models.Model):
item_description = models.CharField(max_length=111)
num_of_jts = models.CharField(max_length=111)
length = models.CharField(max_length=111)
cum_length = models.CharField(max_length=111)
outer_d = models.CharField(max_length=111)
# forms
class BHA_Component_Form(forms.ModelForm):
class Meta():
model = BHA_Component
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在使用 html 在屏幕上打印字段名称,如下所示:
{% for field in bha_form %}
<label>{{ field.name }}</label>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我传递了表单,bha_form作为 中的上下文变量views.py。
如果我使用这组代码,它会在屏幕上显示:
item_description, num_of_jts, length, cum_length, outer_d
但我想将其打印在屏幕上:
Item Description, # of jts, Lenth, Cum. Len., OD
正如你所看到的,我无法通过简单地使用某种s.upper()方法,或者正则表达式方法来获得这个输出,因为原始字段名称和我想要的输出之间没有一定的字符串转换关系。
我想手动决定每个字段将在屏幕上打印哪些字段名称。但我不想通过硬编码 html 元素来做到这一点,如下所示:
<label>Item Description</label>
<label># of jts</label>
<label>Length</label>
Run Code Online (Sandbox Code Playgroud)
我想使用 Django 在后端执行此操作。我该怎么办?
在您的字段上设置名称。请参阅文档中的详细字段名称。
class BHA_Component(models.Model):
item_description = models.CharField('Item Description', max_length=111)
Run Code Online (Sandbox Code Playgroud)
表单将自动选取(并大写)详细名称来创建标签文本。
我现在无法检查,但如果我的记忆是正确的,我相信你应该使用field.label而不是field.name在你的标签中。