【问题标题】:Django forms - how to add labels inside boxes?Django 表单 - 如何在框内添加标签?
【发布时间】:2020-05-11 13:08:41
【问题描述】:

我有简单的 django-form:

class ContactUsForm(forms.ModelForm):
    class Meta:
        model = Contact
        fields = ('subject', 'email', 'message')
        widgets = {'time': forms.HiddenInput()}
        labels = {
            'subject': 'my_subject',
            'email': 'my_email',
            'message': 'my_message',
        }

型号:

class Contact(models.Model):
    email = models.EmailField(max_length=100)
    subject = models.CharField(max_length=100)
    message = models.TextField()
    time = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.message

还有html:

<h2 class="mb-5">Contact</h2>
{% load crispy_forms_filters static %}
<form method="POST" class="post-form">{% csrf_token %}
    {{ form|crispy }}
    <button type="submit" class="btn btn-outline-secondary">Send</button>
</form>

如何去除盒子上方的标签并将其放入里面?可以用脆皮做吗?

【问题讨论】:

    标签: django python-3.x django-models django-crispy-forms


    【解决方案1】:

    试试这个!

    class ContactUsForm(forms.ModelForm):
        subject = forms.CharField(label='Subject', widget=forms.TextInput(attrs={'placeholder': 'Subject'}))
        email = forms.EmailField(label='Email', widget=forms.TextInput(attrs={'placeholder': 'Email'}))
        message = forms.TextField(label='Message', widget=forms.TextInput(attrs={'placeholder': 'Message'}))
        class Meta:
            model = Contact
            fields = ('subject', 'email', 'message')
    

    【讨论】:

    • 移除forms.py类中的label标签以移除html页面上方框的标签
    【解决方案2】:

    此功能在酥脆的形式中不可用。下面的问题显示了使用 init 方法

    实现此目的的干方法

    Use field label as placeholder in django-crispy-forms

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 2017-06-28
      • 1970-01-01
      • 2018-06-29
      • 2016-09-20
      • 2022-10-04
      • 2014-12-03
      • 1970-01-01
      • 2020-02-11
      相关资源
      最近更新 更多