0

django モデルで bigInt[] を定義するにはどうすればよいですか。私は試した

   name = models.CommaSeparatedIntegerField(max_length = 500)
   ss = SomeModel()
   ss.name = '23, 23'
   ss.save()

整合性エラーが発生します。どうすれば問題を解決できますか。ジャンゴ1.2の使用

ありがとう、

4

2 に答える 2

0

この方法でデフォルトの IntegerField をオーバーライドする必要があります。

from django.db.models.fields import IntegerField
from django import forms

class BigIntegerField(IntegerField):
    '''
    IntegerField dont validate too large numbers so PostgreSQL database crashes
    See: https://code.djangoproject.com/ticket/16747
    '''
    MAX_INT = 2147483647

    def formfield(self, **kwargs):
        defaults = {'form_class': forms.IntegerField,
                'min_value':-BigIntegerField.MAX_INT - 1,
                'max_value': BigIntegerField.MAX_INT}
        defaults.update(kwargs)
        return super(IntegerField, self).formfield(**defaults)
于 2012-10-29T13:58:41.040 に答える
0

試してみてください

max_length = 255

動作する場合は、データベースのタイプ/バージョンを確認する必要があります。たとえば、5.0.3 より前の MySQL では、255 文字を超えるフィールドは許可されません。この制限は、 CommaSeparatedIntegerFieldも含むCharacter フィールドに適用されます。

于 2012-10-29T12:02:09.280 に答える