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' の場合、ビューは、season_name = '2011_Greenland_P3' で新しいシーズンを arctic_seasons に挿入する必要があります。
本来ならそうすべきだ」
s = arctic_seasons(name=season);
s.save()
私の質問は、変数の場所のプレフィックスを処理できるコードをどのように書くかです。場所が「南極」の場合、ステートメントは次のようになります。
s = antarctic_seasons(name=season);
s.save()
ただし、明らかに、このコードをすべて複製したくはありません。これどうやってするの?