我在一个对象上有一个字段,我使用 Django (3.2) 管理 UI 中的文本区域来渲染它这段代码 https://stackoverflow.com/a/431412, 就像是:
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 管理 UI 中编辑时,如果我添加空行(多次按 Enter 键),那么当我保存时,它们都会消失。因此,在编辑时,空行:
但保存后,没有换行符:
如何让 Django 管理 UI 保留空行(作为换行符)?
如果我有非空行,它会保留所有换行符。
编辑时:
编辑后(转储到文件中),使用换行符:
你需要设置strip=False[Django 文档] https://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.CharField.strip禁用剥离前导和尾随空格:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)