1
我想使用django格式來驗證字段是整型數組。達到此目的的最佳方法是什麼?我不想使用ChoiceField,我不確定最簡單的方法是什麼。有關這件事的任何建議?Django格式整數數組字段
我想使用django格式來驗證字段是整型數組。達到此目的的最佳方法是什麼?我不想使用ChoiceField,我不確定最簡單的方法是什麼。有關這件事的任何建議?Django格式整數數組字段
爲了存儲陣列我會用一個django-picklefield或自定義字段是這樣的:
from django.db import models
class IntArrayField(models.TextField):
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
super(IntArrayField, self).__init__(*args, **kwargs)
def to_python(self, value):
if not value:
return None
if isinstance(value, list):
return value
return [int(n) for n in value.split('|')]
def get_db_prep_value(self, value):
if not value:
return None
assert(isinstance(value, list) or isinstance(value, tuple))
return '|'.join(str(value))
def value_to_string(self, obj):
value = self._get_val_from_obj(obj)
return self.get_db_prep_value(value)
進行驗證,您可以使用clean_fieldname():
def clean_fieldname(self):
data = self.cleaned_data['fieldname']
# if <data is not an int array>:
# raise forms.ValidationError("You must enter an int array.")
return data
而且,這也是件好事,一些JavaScript代碼驗證輸入並在客戶端更簡單地輸入一個int數組。