MySQL には年データ型があり、django ORM には対応するデータ フィールド型がありません。特定の RDBMS のデータ型をマップするカスタム フィールド クラスを提供できますか? もしそうなら、どうすればそれを行うことができますか?
1 に答える
2
私のニーズを満たす次の解決策を見つけることができました(models.py
):
from django.core.exceptions import FieldError
class YearField(models.Field):
def db_type(self, connection):
if connection.settings_dict['ENGINE'] == 'django.db.backends.mysql':
return 'year'
else:
raise FieldError
次に、モデルで列のデータ型を使用します。
class Band(models.Model):
"""Music band"""
class Meta:
db_table = 'band'
name = models.CharField(max_length=64)
active_since = YearField()
active_until = YearField(null=True)
genres = models.ManyToManyField(Genre)
def __unicode__(self):
return self.name
于 2013-03-16T17:56:34.100 に答える