【问题标题】:Django: Remove/Change Field Text in HTML Django FormsDjango:删除/更改 HTML Django 表单中的字段文本
【发布时间】:2015-08-03 12:46:48
【问题描述】:

我有一个 Django 表单:

from django import forms
from hello.models import Whisper

class WhisperForm(forms.ModelForm):

    class Meta:
        model = Whisper
        fields = '__all__' 

我在这样的 HTML 页面中显示它:

<form action="Whisper" method="post">{% csrf_token %}
    <div class="form-group">
        <p>
            {{form}}
        <p>
        <input type="submit" name="submit" value="Submit Whisper">
    </div>
</form>

表格显示正确,但显示模型名称的方式相当难看,例如:

Whisper:[*This is the text field]

有什么方法可以让模型不再粘在文本字段上,或者至少改变它显示的内容?

【问题讨论】:

    标签: python html django django-forms


    【解决方案1】:

    您可以在__init__ 中覆盖表单的默认标签,如下所示:

    class WhisperForm(forms.ModelForm):
    
        class Meta:
            model = Whisper
            fields = '__all__' 
    
        def __init__(self, *args, **kwargs):
            super(WhisperForm, self).__init__(*args, **kwargs)
            self.fields['whisper'].label = 'Whisper'
    

    【讨论】:

      【解决方案2】:

      in the Django docs 所述,推荐的方法是通过表单的Meta 类中的labels 变量。

      class WhisperForm(forms.ModelForm):
      
          class Meta:
              model = Whisper
              fields = '__all__'
              labels = {'whisper': 'Custom label text here'}
      

      【讨论】:

        猜你喜欢
        • 2017-02-28
        • 1970-01-01
        • 2010-12-31
        • 2014-08-12
        • 1970-01-01
        • 2012-12-20
        • 2022-12-17
        • 2017-06-06
        • 1970-01-01
        相关资源
        最近更新 更多