2012-05-11 2 views
0

Как передать несколько идентификаторов объектов в форму Django? Есть ли способ передать в массив JavaScript, содержащий несколько идентификаторов объектов, в поле формы и пропустить его на стороне сервера?Многочисленные входные данные в Django

ответ

1

Вы можете использовать CommaSeparatedIntegerField для хранения идентификаторов, возможно даже с помощью виджета HiddenInput, если вы динамически заполняете данные на JavaScript.

После того, как вы подтвердите форму на стороне сервера, вы сможете перебирать список целых чисел из cleaned_data формы.

0

Возможно, вы захотите создать новое поле и переопределить метод 'to_python'.

В следующем базовом примере создайте новое поле char, которое принимает строку, содержащую идентификаторы, разделенные запятой, и возвращает набор запросов.

class MyField(forms.CharField): 
    def to_python(self, value): 
     ids = value.split(',') 

     return MyModel.objects.filter(id__in=ids) 

class MyForm(forms.Form): 
    ids = MyField() 

Посмотрите how validation work in Django.

Смежные вопросы