如何在 django 模型中定义 bigInt[]。我试过了
name = models.CommaSeparatedIntegerField(max_length = 500)
ss = SomeModel()
ss.name = '23, 23'
ss.save()
它给了我完整性错误。我该如何解决这个问题。使用 django 1.2
谢谢,
如何在 django 模型中定义 bigInt[]。我试过了
name = models.CommaSeparatedIntegerField(max_length = 500)
ss = SomeModel()
ss.name = '23, 23'
ss.save()
它给了我完整性错误。我该如何解决这个问题。使用 django 1.2
谢谢,
尝试
max_length = 255
如果它有效,那么您应该检查您的数据库类型/版本。例如,5.0.3 之前的 MySQL 不允许字段超过 255 个字符。此限制适用于还包括CommaSeparatedIntegerField的字符字段。
您应该以这种方式覆盖默认 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)