1

MySQL にはデータ型があり、django ORM には対応するデータ フィールド型がありません。特定の RDBMS のデータ型をマップするカスタム フィールド クラスを提供できますか? もしそうなら、どうすればそれを行うことができますか?

4

1 に答える 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 に答える