Происходит то, что вы фактически сохраняете пустую строку ''
в ваших полях CharFields вместо None
значений (из-за blank=True
). Таким образом, Django-admin показывает строку, которую вы сохранили в БД (в данном случае ничего).
Если вы измените свои CharFields на null=True
вместо blank=True
, вы будете сохранять NULL
в своей базе данных вместо пустой строки. И таким образом вы получите желаемое поведение.
РЕДАКТИРОВАТЬ: Я знаю, что это решение не рекомендуется (в соответствии с Django Docs), но это поведение, которое вы хотели. Django-admin просто показывает вам строку в базе данных, которая является ''
.
Другое решение, которое приходит мне в голову, - это изменение ModelAdmin для вашей модели Package
, например:
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..