django模型中的BigInt [] postgre

时间:2012-10-29 11:44:54

标签: django django-models

如何在django模型中定义bigInt []。 我试过了

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

这给了我诚信错误。我怎样才能解决这个问题。 使用django 1.2

谢谢,

2 个答案:

答案 0 :(得分:0)

尝试

max_length = 255

如果有效则应检查数据库类型/版本。 例如,5.0.3之前的MySQL将不允许超过255个字符的字段。此限制适用于字符字段,其中还包括 CommaSeparatedIntegerField

答案 1 :(得分: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)