Django forms, attrs cols и строки для текстовой области не работают, почему?

#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. Ваш ответ повторяет возможное решение, уже представленное автором сообщения, и не объясняет, почему возникает проблема, что является вопросом автора.