同时使用Django和GeoDjango

问题描述 投票:0回答:1

我对在Django中使用GeoDjango表示怀疑。我的项目中有两个应用程序:BlogMap。这两个应用程序与第三个应用程序Kernel有关。在内核内部,有一些对Blog和Map有用的模型,其中之一是TimeManager

TimeManager是一个简单的模型,它是“ 管理时间”:

from django.db import models

class TimeManager(models.Model):
    publishing_date = models.DateTimeField(
        'Published at',
        default=timezone.now,
        )
    updating_date = models.DateTimeField(
        'Updated at',
        auto_now=True,
        )
    timestamp = models.DateTimeField(
        auto_now=False,
        auto_now_add=True,
        )

    class Meta:
        abstract = True

进入博客,有一个模型发布:

from django.db import models

from kernel.models import TimeManager

class Post(TimeManager):
    title=
    slug=
    descrtiption=
    .
    .

进入地图,有一个模型MyMap:

from django.contrib.gis.db import models

from kernel.models import TimeManager

class MyMap(TimeManager):
    geom = models.PointField()
    title = 
    .
    .

现在,我的疑问是:对几何模型而不是几何模型都使用TimeManager是否正确?我知道GeoDjango继承自Django模型,但我不知道我的方法是否正确。

django django-models geodjango django-2.2
1个回答
1
投票

这完全没有问题。 GeoDjango已很好地集成到Django项目本身中,因此这里没有冲突的原因。 GeoDjango是contrib软件包的一部分。 The Django docs on the contrib package:

Django的目标是遵循Python的“含电池”理念。它附带了多种其他可选工具,可解决常见问题Web开发问题。

此代码位于Django发行版的django / contrib中。

这意味着您可以假设django.contrib中包含的所有其他Django功能都可以与Django的其余部分很好地配合。

[如果要把您的应用程序变成可重用的库,并且应该很好,请确保您记录了哪些应用程序使用GeoDjango,以及如何在系统上配置地理空间库。

只要内核是某种基本应用程序,这种用例就是一种创建具有某种日期和时间管理对象的漂亮DRY方法。

© www.soinside.com 2019 - 2024. All rights reserved.