Как сохранить пустые строки в textarea в Django admin UI?
У меня есть поле на объекте, и я отображаю его с помощью textarea в Django (3.2) admin UI, используя этот код , что-то вроде:
class MyObject(models.Model):
some_text = prompt = db.CharField(max_length=10000)
# ..
class MyObjectAdmin(admin.ModelAdmin):
list_display = ('id', 'some_text')
def formfield_for_dbfield(self, db_field, **kwargs):
"""Use Textarea for some_text.
See also https://stackoverflow.com/a/431412."""
formfield = super().formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'some_text':
formfield.widget = forms.Textarea(attrs={'rows': 10, 'cols': 80})
return formfield
При редактировании в Django admin UI, если я добавляю пустые строки (нажимая несколько раз Enter), то при сохранении они исчезают. Итак, при редактировании, пустые строки:
Но после сохранения, без новых строк:
Как заставить администратора Django сохранять пустые строки (как новые строки)?
Если у меня непустые строки, он сохраняет все новые строки.
Во время редактирования:
После редактирования (выгружается в файл), с новыми строками:
Вам нужно установить strip=False
[Django-doc], чтобы отключить удаление пробелов в начале и в конце страницы:
def formfield_for_dbfield(self, db_field, **kwargs):
formfield = super().formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'some_text':
formfield.strip = False
formfield.widget = forms.Textarea(attrs={'rows': 10, 'cols': 80})
return formfield