在Django项目中我使用两个数据库,第一个是MySQL第二个是PostgreSQL,在PostgreSQL中我只有几何值,但我也需要用户,所以在模型中我有:
from django.conf import settings
from django.contrib.gis.db import models
class geo(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
location = models.PointField()
一切正常,但是当我尝试保存时,用户字段显示错误 ID为1L的用户实例不存在那么可能是什么答案?问题来自router.py文件吗?
答案 0 :(得分:1)
错误来自这一行:
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
您要定义默认值= 1 ,因此当您未将任何用户实例分配到 geo 模型的用户字段时,默认为用户字段采用整数默认值,但它期望用户实例。
有两种解决方案:
或强>
在 geo 模型中使用 blank = True,null = True ,如下所示:
class geo(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True)
location = models.PointField()
我个人推荐第二种方法。感谢。