作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当没有值时,是否有 Djangotastic 方法来显示管理员中字段的默认值?像'n/a',但不将其保存到数据库中?
当我在管理中将下面模型中的所有字段设置为只读时,前端显示看起来像底部的图像。它在视觉上感觉折叠起来,就像它应该有一个值或一个盒子或其他东西一样。如果没有一种简单的方法来做我正在寻找的东西,那么是否有另一种解决方案可以让前端管理员对用户更加清晰?
class Package(models.Model):
packaging_format = models.CharField(max_length=40)
package_delivery_pattern = models.CharField(max_length=30, blank=True)
package_delivery_comments = models.CharField(max_length=250, blank=True)
package_manifest_filename = models.CharField(max_length=50)
package_description = models.CharField(max_length=250, blank=True)
package_naming_pattern = models.CharField(max_length=50)
最佳答案
发生的事情是您实际上保存了一个空字符串 ''
在你的 CharFields 而不是 None
值(因为 blank=True
)。所以 Django-admin 显示了你保存在 db 中的字符串(在这种情况下,什么都没有)。
如果您将 CharFields 更改为 null=True
而不是 blank=True
,您将节省 NULL
在您的数据库中,而不是空字符串。这样,你就会得到你想要的行为。
编辑:我知道不推荐使用此解决方案(遵循 Django Docs),但这是您想要的行为。 Django-admin 只是向您显示数据库中的字符串,即 ''
.
我想到的另一个解决方案是为您的 Package
修改 ModelAdmin模型,类似于:
class PackageAdmin(admin.ModelAdmin):
readonly_fields = ['show_package_delivery_pattern', ...]
def show_package_delivery_pattern(self, obj):
if obj.package_delivery_pattern:
return obj.package_delivery_pattern
else:
return 'N/A'
# same with all your CharFields..
关于django - 如何在Django admin中显示没有值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215906/
我是一名优秀的程序员,十分优秀!