我有两个问题困扰我。我正面临一个实现,其中一些文档与不同级别的地理数据相关,并希望工厂生成它们。让我们看一个例子,我认为它可能有用:
from django.contrib.gis.db import models
class Country(models.Model):
name = models.CharField(max_length=60)
class Region(models.Model):
country = models.ForeignKey(Country, on_delete=models.PROTECT)
name = models.CharField(max_length=60)
class Law(models.Model):
text = models.CharField(max_length=60)
class Meta:
abstract = True
class CountryLaw(Law):
country = models.ForeignKey(Country, on_delete=models.CASCADE)
class RegionLaw(Law):
region = models.ForeignKey(Region, on_delete=models.CASCADE)
# Not sure this work but the idea is here
class LawManager(models.Manager):
def create_law(text,geodata):
if isinstance(geodata, Country):
return CountryLaw(text=text, country=geodata)
elif isinstance(geodata, Region)
return RegionLaw(text=text, region=geodata)
else:
raise TypeError("Inapropriate geodata type")
我想要一些工厂方法,因为我有一些工作来填补所有法律所共有的“法律”领域,但这个例子没有显示出来。 我的问题如下:
我在谷歌和stackoverflow上搜索答案,但不知道使用什么关键字,并没有找到任何可以帮助我的东西..
感谢您的帮助!