python - Django 默认放置空字符串,同时期望它在 DB 列中为空
问题描述
我将postgresql
10.6 版与我的Django
2.1 应用程序一起使用。问题是,当我null=True
在我的模型字段中使用它时,它会将数据库列中的空字符串('')转换为默认值,而我尝试将其默认为null
.
在我的以下代码示例image
列中应该是null
:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(upload_to='profile_pics', null=True, blank=True)
我这样称呼这个类signal
:
@receiver(post_save, sender=User)
def create_profile(sender, **kwargs):
if kwargs.get('created') is True:
Profile.objects.create(user=kwargs.get('instance'))
在此快照中,您可以看到该image
列作为空字符串插入,而不是null
我还尝试将我的模型字段的默认值用作:
image = models.ImageField(default=None, upload_to='profile_pics', null=True, blank=True)
但它也不起作用。
解决方案
image = models.ImageField(upload_to='profile_pics', null=True)
去除blank=True
推荐阅读
- grafana - 如何找到用于导出 JSON 的 Grafana 版本?
- scrapy - Scrapy 安装错误:[CondaEnvironmentNotFoundError]:找不到环境:base
- c# - JSON.net 反序列化对象嵌套数据
- javascript - 如何清除 .zip 队列?
- javascript - 返回包含条件的数组的长度
- python - Django 仅在同一日期有多个公司交易的情况下查询交易
- java - SnakeYaml“找不到属性错误”
- javascript - Web 推送通知(使用服务工作者)
- javascript - 使用 fetch API 通过 formData 传递表单上输入的所有值的问题
- r - 在excel中保留几列中的匹配行