我已经将我的Model字段设置为null=True,这允许在MySQL中使用NULL,但是我似乎不能通过Django Admin将NULL赋给该字段。我也尝试过设置blank=True,但这只是将字段设置为空字符串。下面的this也不起作用,因为字段值被设置为字符串"None“。
有什么想法吗?
发布于 2011-08-09 23:54:26
尝试覆盖Model的save()方法,以检查是否有空值:
class MyModel(models.Model):
my_nullable_string = models.CharField(max_length=15, null=True, blank=True)
def save(self, *args, **kwargs):
if not self.my_nullable_string:
self.my_nullable_string = None
super(MyModel, self).save(*args, **kwargs)发布于 2011-08-09 17:16:49
This section in the docs听起来像是无法通过管理员将基于字符串的字段设置为NULL;它将使用空字符串。Django就是这样做的。它将适用于其他类型的字段。
您要么必须修改管理脚本,要么决定它在数据库中实际上不需要为NULL;空字符串就可以了。
发布于 2014-05-11 04:06:16
尝试此代码,此处为Language.subregion hass null=True此代码覆盖管理表单设置(LanguageAdmin),并将“Language.subregion”字段属性- required设置为False
from app.models import Language
from django.contrib import admin
class Language(models.Model):
subregion = models.ForeignKey(SubRegion, null=True)
code = models.CharField(max_length=10, unique=True)
class LanguageAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super(LanguageAdmin, self).get_form(request, obj, **kwargs)
form.base_fields['subregion'].required = False
return form
admin.site.register(Language, LanguageAdmin)https://stackoverflow.com/questions/6993780
复制相似问题