猿问

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

所以我见过很多不同的方法来做到这一点,但没有一种适合我的设置。我想为表单中的文本字段添加占位符(“用户”、“标题”、“评论”)


forms.py


class RestroomForm(forms.ModelForm):

    class Meta:

        model = RestroomReview

        fields = (

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

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

            'rating', 'title', 'comment'

            )

models.py


class 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 中设置它时遇到问题,就像我在此处看到的建议一样。或者有什么地方可以将它添加到我的模板中?如果我可以提供更多信息/上下文,请告诉我。


慕田峪7331174
浏览 127回答 1
1回答

沧海一幻觉

这应该在您的 forms.py 中(以“用户”为例。并非所有参数都是必需的):from django.core.validators import RegexValidatordef My_TextField_Validator(self):&nbsp; &nbsp; return RegexValidator(r'^[-a-zA-Z0-9. ]+$',&nbsp; &nbsp; 'Valid Input: Alphanumeric characters, dash, dot, space')class RestroomForm(forms.ModelForm):&nbsp; &nbsp; user = forms.CharField(max_length=50, min_length=4, required=True,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;help_text='My help text', label='My Label',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;validators=[My_TextField_Validator],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;widget=forms.TextInput(attrs={'class': 'form-control',&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'placeholder': 'User'}))&nbsp; &nbsp; class Meta:&nbsp; &nbsp; &nbsp; &nbsp; model = RestroomReview&nbsp; &nbsp; &nbsp; &nbsp; fields = (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'user', 'public', 'rest_type',&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'baby', 'needle', 'handicap',&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'rating', 'title', 'comment'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )
随时随地看视频慕课网APP

相关分类

Python
我要回答