我必须关注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__'
到目前为止,我一直在使用html这样在屏幕上打印字段名称:
{% for field in bha_form %}
<label>{{ field.name }}</label>
{% endfor %}
我以bha_form
的形式作为views.py
中的上下文变量进行了传递。
如果我使用这组代码,它将在屏幕上显示:
item_description, num_of_jts, length, cum_length, outer_d
但是我想在屏幕上打印出来
Item Description, # of jts, Lenth, Cum. Len., OD
如您所见,我无法仅通过使用某些s.upper()
方法或regex方法来获得此输出,因为原始字段名称与所需的输出之间没有任何字符串转换关系。
我想手动决定要在屏幕上为每个字段打印的字段名称。但是我不想通过对这样的html元素进行硬编码来做到这一点:
<label>Item Description</label>
<label># of jts</label>
<label>Length</label>
我想使用Django在后端执行此操作。我该怎么办?
答案 0 :(得分:2)
在您的字段上设置一个名称。请参阅文档中的verbose field names。
class BHA_Component(models.Model):
item_description = models.CharField('Item Description', max_length=111)
form将自动提取(并大写)详细名称,以创建标签文本。
我现在无法检查,但是如果我的记忆正确,我相信您应该在标签中使用field.label
而不是field.name
。