django モデルで bigInt[] を定義するにはどうすればよいですか。私は試した
name = models.CommaSeparatedIntegerField(max_length = 500)
ss = SomeModel()
ss.name = '23, 23'
ss.save()
整合性エラーが発生します。どうすれば問題を解決できますか。ジャンゴ1.2の使用
ありがとう、
django モデルで bigInt[] を定義するにはどうすればよいですか。私は試した
name = models.CommaSeparatedIntegerField(max_length = 500)
ss = SomeModel()
ss.name = '23, 23'
ss.save()
整合性エラーが発生します。どうすれば問題を解決できますか。ジャンゴ1.2の使用
ありがとう、
この方法でデフォルトの 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)
試してみてください
max_length = 255
動作する場合は、データベースのタイプ/バージョンを確認する必要があります。たとえば、5.0.3 より前の MySQL では、255 文字を超えるフィールドは許可されません。この制限は、 CommaSeparatedIntegerFieldも含むCharacter フィールドに適用されます。