Как я могу настроить перенос большой длинной строки текста в форму Django?
У меня есть форма с OneToOneField, в которую загружаются данные из другой табличной модели. Но у меня там часто большие размеры данных, и отображаемый текст не вписывается в размер окна. Можно ли как-то настроить перенос текста на 2-3 строки?
Как я могу настроить перенос большой длинной строки текста в форму?
from django.db import models
# Create your models here.
class ArkiObject (models.Model):
nameobject = models.TextField(verbose_name="Наименование объекта")
def __str__(self):
return self.nameobject
TYPE_OBJECT = [
("1", "Котельная"),
("2", "Сети"),
("3", "БМК"),
("4", "ЦТП"),
("5", "ТГУ"),
]
TYPE_WORK = [
("1", "Реконструкция"),
("2", "Капитальный ремонт"),
("3", "Строительство"),
]
TYPE_CITY = [
("1", "Бронницы"),
("2", "Луховицы"),
("3", "Павловский Посад"),
("4", "Раменское"),
("5", "Шатура"),
]
class ArkiOneObject (models.Model):
city = models.CharField(
choices=TYPE_CITY,
verbose_name="Выберите ОМСУ")
typeobject = models.CharField(
choices=TYPE_OBJECT,
verbose_name="Выберите тип объекта")
typework = models.CharField(
choices=TYPE_WORK,
verbose_name="Выберите тип работ")
nameobject = models.OneToOneField(ArkiObject, verbose_name="Наименование объекта", on_delete=models.CASCADE)
from django import forms
from .models import *
class FormOne (forms.ModelForm):
class Meta:
model = ArkiOneObject
fields = "__all__"
class FormTwo (forms.ModelForm):
class Meta:
model = ArkiTwoObject
fields = "__all__"
class FormThree (forms.ModelForm):
class Meta:
model = ArkiObject
fields = "__all__"
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>title</title>
</head>
<body>
<div>
<form method="POST" class="post-form">
{% csrf_token %} {{formtwo.as_p}}
<button type="submit" class="button">Отправить</button>
</form>
</div>
</body>
</html>
def formone(request):
context = {}
formone = FormOne(request.POST or None)
if formone.is_valid():
formone.save()
return redirect("formone")
context['formone'] = formone
return render(request, "formone.html", context)
def formtwo(request):
context = {}
formtwo = FormTwo(request.POST or None)
if formtwo.is_valid():
formtwo.save()
return redirect("formtwo")
context['formtwo'] = formtwo
return render(request, "formtwo.html", context)
К сожалению, стандартные HTML—элементы <select> и <option> не поддерживают перенос текста по своей конструкции - они ограничены в плане форматирования. Если текст длинный, он либо переполняется, либо обрезается, либо требует горизонтальной прокрутки (в зависимости от браузера).
Используйте Select2
Библиотеки, подобные Select2, заменяют обычное поле выбора стилизуемым виджетом, который поддерживает многострочный текст, поиск и улучшенный пользовательский интерфейс.
Используйте всплывающие подсказки с многоточием (без обводки)
