0

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

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

它给了我完整性错误。我该如何解决这个问题。使用 django 1.2

谢谢,

4

2 回答 2

0

尝试

max_length = 255

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

于 2012-10-29T12:02:09.280 回答
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 回答