如何在 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