【发布时间】:2021-08-25 09:02:45
【问题描述】:
好的,为什么我不能将空值保存到 Point-、MultiPoint- 或 PolygonField?
我创建了一个表单,用户可以在其中选择他们发现特定鸟类的区域或位置。我使用 GeoDjango 来存储数据,数据可以存储在 PointField 或 PolygonField 中。
PointField 不是必需的,所以在我设置为 False 的表单中,这给了我以下错误;
为了记录,我使用 MySQL 作为数据库。我目前不需要 PostgreSQL 附带的所有额外功能。
IntegrityError at /sighting/where-did-you-spot-the-bird/
(1048, "Column 'sighting' cannot be null")
#models.py
from django.contrib.gis.db import models
class Sighting(models.Model)
name = models.CharField(max_length=140)
description = models.TextField()
sighting = models.PointField(
blank=True,
null=True,
spatial_index=False
)
所以列瞄准不能为空,这是为什么呢?我是遗漏了什么还是总是需要一个值?
一种解决方案是保存一个默认值,假设是 Point(0,0),但它们应该是另一种解决方案。
任何想法将不胜感激!
【问题讨论】: