2013-07-08 35 views
0

如果我有下面的類:Django的CommaSeperatedIntegerField數和負數

class foo(models.Model): 
    list = models.CommaSeparatedIntegerField(max_length=255) 

如果我嘗試從管理添加Foo對象,它不會讓我填充負數列表。例如,如果我使用1,2,3,4來填充字段,那很好。但1,2,3,-4會給我錯誤消息「只輸入以逗號分隔的數字」。有任何想法嗎?

謝謝!

回答

0

CommaSeparatedIntegerField的驗證代碼如下所示:

comma_separated_int_list_re = re.compile('^[\d,]+$') 
validate_comma_separated_integer_list = RegexValidator(comma_separated_int_list_re, _(u'Enter only digits separated by commas.'), 'invalid') 

所以你不能用它來負數。

我建議你根據這段代碼編寫你自己的驗證碼。

+0

感謝您的回答。我想下一個問題是:是否有一種簡單的方法來更改驗證碼?我不想創建自定義模型字段。 – user2545167

+0

您可以在焦炭領域使用'RegexValidator',它看起來就像:'名單= models.CharField(MAX_LENGTH = 255,驗證器= [RegexValidator(YOUR_REGEX_HERE)])' – Tzach