为了账号安全,请及时绑定邮箱和手机立即绑定

将占位符添加到 Django 中的表单字段

将占位符添加到 Django 中的表单字段

慕田峪7331174 2023-05-09 16:14:43
所以我见过很多不同的方法来做到这一点,但没有一种适合我的设置。我想为表单中的文本字段添加占位符(“用户”、“标题”、“评论”)forms.pyclass RestroomForm(forms.ModelForm):    class Meta:        model = RestroomReview        fields = (            'user', 'public', 'rest_type',             'baby', 'needle', 'handicap',             'rating', 'title', 'comment'            )models.pyclass RestroomReview(models.Model):    ...    ...    ...    venue = models.ForeignKey(Venue, blank=False, on_delete=models.CASCADE)    user = models.CharField(max_length=200, blank=False)    public = models.BooleanField(blank=False)    rest_type = models.CharField(        max_length=1,         choices=RESTROOM_TYPE_CHOICES,         default=MEN    )    baby = models.BooleanField('Changing Table')    needle = models.BooleanField('Sharps Container')    handicap = models.BooleanField('Handicap Accessible')    rating = models.IntegerField(choices=RATING_CHOICES, default=1)    title = models.CharField(max_length=200, blank=False)    comment = models.TextField(max_length=1000, blank=False)    posted_date = models.DateTimeField(blank=False)    def publish(self):        posted_date = datetime.datetime.today()        self.save()        def __str__(self):        return f'Review for {self.venue.name} by {self.user}'场地细节.html<!-- form to review restroom --><div class="container">    <form method="POST" action="{% url 'venue_detail' venue_pk=venue.pk %}">        {% csrf_token %}        {% for field in restroom_form %}            <div class="form-group">                <label for="{{ field.id_for_label }}">{{ field.label }}</label><br>                {{ field|add_class:'form-control' }}            </div>        {% endfor %}        <input type="submit" value="Submit">    </form></div>有没有办法在 models.py 中设置占位符?我在 forms.py 中设置它时遇到问题,就像我在此处看到的建议一样。或者有什么地方可以将它添加到我的模板中?如果我可以提供更多信息/上下文,请告诉我。
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

这应该在您的 forms.py 中(以“用户”为例。并非所有参数都是必需的):


from django.core.validators import RegexValidator


def My_TextField_Validator(self):

    return RegexValidator(r'^[-a-zA-Z0-9. ]+$',

    'Valid Input: Alphanumeric characters, dash, dot, space')


class RestroomForm(forms.ModelForm):

    user = forms.CharField(max_length=50, min_length=4, required=True,

                           help_text='My help text', label='My Label',

                           validators=[My_TextField_Validator],

                           widget=forms.TextInput(attrs={'class': 'form-control', 

                           'placeholder': 'User'}))

    class Meta:

        model = RestroomReview

        fields = (

            'user', 'public', 'rest_type', 

            'baby', 'needle', 'handicap', 

            'rating', 'title', 'comment'

            )


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信