gpt4 book ai didi

python - GeoDjango - 哪些表应该从 django.contrib.gis.db.models 继承?

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:35 28 4
gpt4 key购买 nike

我刚刚按照教程为 Django 1.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 的代码

from django.db.models import *  # NOQA isort:skip
from django.contrib.gis.db.models.aggregates import * # NOQA
from django.contrib.gis.db.models.fields import ( # NOQA
GeometryCollectionField, GeometryField, LineStringField,
MultiLineStringField, MultiPointField, MultiPolygonField, PointField,
PolygonField, RasterField,
)
from django.contrib.gis.db.models.manager import GeoManager # NOQA

gis 模块导入所有在 django 中定义的模型,并添加一些自己的模型。

因此您可以安全地从 gis 模型继承所有模型。这是同一回事。

关于python - GeoDjango - 哪些表应该从 django.contrib.gis.db.models 继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330952/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com