我刚刚按照教程为django1.9安装GeoDjango,并试图编写我的用户模型,但我不确定哪些表应该继承自django.contrib.gis.db.models
,而不是常规的django.db.models
。
我正在创建一个Customer
表,其中有一个表示其位置的PointField,以及一个从名为Traveller
的客户继承的表。我还有第三个表Equipment
,它有一个Traveller
的外键。
我的继承权对吗?有更好的方法吗?
from django.contrib.gis.db import models as gis_models
from django.db import models
class Customer(gis_models.Model):
user = gis_models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
blank=True,
null=True
)
location = gis_models.CharField(max_length=100)
gis_location = gis_models.PointField(u"longitude/latitude",
geography=True, blank=True, null=True)
name = gis_models.CharField(max_length=100)
class Meta:
abstract = True
class Traveller(Customer):
will_travel = gis_models.NullBooleanField()
class Equipment(models.Model):
name = models.CharField(max_length=50)
description = models.CharField(max_length=100)
owner = models.ForeignKey(
'Traveller',
on_delete=models.SET_NULL,
null=True
)
谢谢
这是来自
django/contrib/gis/db/models/__init__.py
的代码gis模块导入django中定义的所有模型,并添加自己的一些模型。在
因此,您可以安全地从gis模型继承所有模型。是一样的。在
相关问题 更多 >
编程相关推荐