У меня такая форма:
from django import forms
class PostForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
И следующая часть в моем шаблоне
<p>{{ form.message }}</p>
Он отображает поле как текстовое поле, как указано. Хотя для шаблона я хочу установить его на 4 строки и 25 столбцов, не касаясь определения формы. Это возможно?
3 ответа
class PostForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
def set4x25(self):
self.fields['message'].widget.attrs = {'rows':'4', 'cols': '25'}
И в шаблоне:
{{ form.set4x25 }}
{{ form.message }}
Вы можете настроить эту идею по своему усмотрению.
Вы можете сделать это в шаблоне с помощью django-widget-tweaks:
{% load widget_tweaks %}
<p>{% render_field form.message rows="4" cols="25" %}</p>
Или
{% load widget_tweaks %}
<p>{{ form.message|attr:"rows:4"|attr:"cols:25" }}</p>
Вы не можете сделать это из шаблона, но можете:
Используйте CSS, чтобы указать ширину и высоту текстового поля. Это переопределит атрибуты строк и столбцов
Отрисовываем поле вручную:
{% with form.message as field %} <textarea name="{{ field.html_name }}" id="{{ field.html_initial_id }}" rows="4" cols="25">{% if field.data %}{{ field.data }}{% endif %}</textarea> {% endfor %}
Похожие вопросы
Новые вопросы
django
Django - это серверная платформа веб-приложений с открытым исходным кодом, написанная на Python. Он разработан для сокращения усилий, необходимых для создания сложных веб-сайтов и веб-приложений, управляемых данными, с особым упором на меньшее количество кода, отсутствие избыточности и более явное, чем неявное.