我在models.py中定义了一些模型(只是一个子集)
class arctic_seasons(models.Model):
season_id = models.AutoField(primary_key=True)
season_name = models.CharField(max_length=20)
description = models.CharField(max_length=20)
def __unicode__(self):
return self.season_name
class antarctic_seasons(models.Model):
season_id = models.AutoField(primary_key=True)
season_name = models.CharField(max_length=20)
description = models.CharField(max_length=20)
def __unicode__(self):
return self.season_name
请注意,这些表之间的唯一区别是前缀arctic_或antarctic_
我正在定义一个视图,该视图本质上将解码一些 GeoJSON 数据并将其插入基于模型的数据库中。
GeoJSON 有一个字符串参数“season”,它将标识数据应该插入到哪个模型(表)中。
例如,假设我们最终得到了这些变量(从 POST 中收集的 GeoJSON 中提取)
season = data['properties']['season']
location = data['properties']['location']
如果season = '2011_Greenland_P3'和location = 'arctic'视图应该在 arctic_seasons 中插入一个 season_name = '2011_Greenland_P3' 的新季节
本质上它应该做”
s = arctic_seasons(name=season);
s.save()
我的问题是,如何编写可以处理变量位置前缀的代码。如果该位置是“南极”,则声明将变为:
s = antarctic_seasons(name=season);
s.save()
但是我显然不想复制所有这些代码。我怎样才能做到这一点?