2012-10-29 48 views
0

如何在django模型中定義bigInt []。 我試圖BigInt []在django模型中的postgre

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

這是給我完整性錯誤。我該如何解決這個問題。 使用Django 1.2

感謝,

回答

0

max_length = 255 

嘗試如果成功,那麼你應該檢查你的數據庫類型/版本。 例如,5.0.3之前的MySQL不允許超過255個字符的字段。此限制適用於字符字段其中還包括CommaSeparatedIntegerField

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)