我的模型定义如下:
class MyModel(models.Model):
tag_separator = models.CharField(max_length=1, null=True, blank=True)
tag_separator
是单个字符,可以是单个空格:" "
我需要选择null=True
才能使其正常工作,但是当我通过REST API发布数据时,它会将tag_separator
保存为空字符串:"tag_separator": ""
。
有没有一种简单的方法可以阻止Django假设我的单个空格字符串是一个空字符串?
我正在使用:Django==1.11
和djangorestframework==3.7.7
答案 0 :(得分:1)
import itertools
a=[[1,2],[3,4],[7,10]]
b=[[8,6],[1,9],[2,1],[8,8]]
result = sum(sum(c*d for c, d in zip(h, k)) for h, k in itertools.product(a, b))
然后在我的模型中:
class NonStrippingCharField(models.CharField):
def formfield(self, **kwargs):
kwargs['strip'] = False
return super(NonStrippingCharField, self).formfield(**kwargs)
答案 1 :(得分:0)
在您的序列化程序中,将trim_whitespace=False
传递到您的CharField
。即:
class MyModelSerializer(serializers.ModelSerializer):
tag_separator = serializers.CharField(trim_whitespace=False)
class Meta:
model = MyModel
同样,当您使用django的表单时,请使用strip=False
:
class MyModelForm(forms.ModelForm):
tag_separator = forms.CharField(strip=False)
class Meta:
model = MyModel