#django #forms #widget #textarea
#django #формы #виджет #текстовая область
Вопрос:
Я работаю над проектом с Django и текстовой областью. Текстовая область по умолчанию отображает cols =»40″ и rows =»10″, что не очень хорошо для моей страницы. Я пытаюсь использовать виджеты Django, чтобы изменить эти атрибуты на 20 и 5 соответственно. Это мой код:
class NewContent(forms.Form):
content = forms.CharField(widget=forms.Textarea(attrs={"cols":20, "rows":5}))
К сожалению, код вообще не изменяет внешний вид формы при отображении страницы. Это означает, что он отображает столбцы 40 и строки 10. Но подождите, все становится действительно странным… при проверке инструментов разработчика в Google я вижу, что HTML-код изменился на то, что я хочу! сумасшедший!!
Я также попробовал следующий код, который я нашел в другом чате:
attrs={"style": "height:60px; width:500px"}
Который «изменяет» размер поля, но … по разным причинам я не в восторге от этого решения.
У кого-нибудь есть представление о том, что здесь происходит?
У меня Windows 10 и я использую VEC. Приветствия!
Комментарии:
1. вероятно, у вас есть некоторые правила CSS, которые изменяют размер вашей текстовой области
Ответ №1:
у вас может быть стиль css, который определяет ширину и высоту вашей текстовой области, например:
<html>
<head>
<style>
textarea {width: 100px; height:30px;}
</style>
</head>
<body>
<form>
<textarea cols="30" rows="5"></textarea><br/>
<textarea cols="40" rows="7"></textarea>
</form>
</body>
</html>
Ответ №2:
У меня также была такая же проблема с текстовой областью. Если я не даю никакого значения attrs при создании текстовой области. pgContent = forms .CharField(widget= forms.Текстовая область)
Он принимает значение по умолчанию row = 10 cols = 40, определенное в документации django для текстовой области. Я очистил строку текстовой области, col, определенную в css, и я попробовал это pgContent = forms .CharField(widget= forms.Textarea(attrs={‘rows’: 40, ‘cols’: 70}) Никаких изменений в рендеринге pg. Но источник страницы показывает новое значение строки, col.
Я попробовал это, и это сработало. значение css attrs={«style»: «height:60px; width:500px»} заменяет значение html для строки, col. Я удивлен, почему он не принимает значение, определенное в styles.css, которое я определил для текстовой области.
Комментарии:
1. Ваш ответ повторяет возможное решение, уже представленное автором сообщения, и не объясняет, почему возникает проблема, что является вопросом автора.