如何在 Django admin UI 的文本区域中保留空行?
How to keep empty lines in a textarea in Django admin UI?
我在一个对象上有一个字段,我在 Django (3.2) admin UI 中使用 this code 中的文本区域渲染它,类似于:
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
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 中编辑时,如果我添加空行(多次按下回车),当我保存时,它们都消失了。因此,在编辑时,空行:
但是保存后没有换行:
如何让 Django 管理员 UI 保留空行(作为换行符)?
如果我有非空行,它会保留所有换行符。
编辑时:
编辑后(转储到文件),换行符:
您需要设置 strip=False
[Django-doc] 以禁用剥离前导和尾随 space:
def formfield_for_dbfield(self, db_field, **kwargs):
formfield = super().formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'some_text':
<strong>formfield.strip = False</strong>
formfield.widget = forms.Textarea(attrs={'rows': 10, 'cols': 80})
return formfield
我在一个对象上有一个字段,我在 Django (3.2) admin UI 中使用 this code 中的文本区域渲染它,类似于:
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
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 中编辑时,如果我添加空行(多次按下回车),当我保存时,它们都消失了。因此,在编辑时,空行:
但是保存后没有换行:
如何让 Django 管理员 UI 保留空行(作为换行符)?
如果我有非空行,它会保留所有换行符。
编辑时:
编辑后(转储到文件),换行符:
您需要设置 strip=False
[Django-doc] 以禁用剥离前导和尾随 space:
def formfield_for_dbfield(self, db_field, **kwargs):
formfield = super().formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'some_text':
<strong>formfield.strip = False</strong>
formfield.widget = forms.Textarea(attrs={'rows': 10, 'cols': 80})
return formfield