ModelMultipleChoiceField и reverse () - PullRequest
0 голосов
/ 21 мая 2010

У меня есть форма, содержащая ModelMultipleChoiceField .

Можно ли придумать отображение URL, которое будет захватывать различное количество параметров из указанного ModelMultipleChoiceField?

Я выполняю вызов reverse () в представлении, передающем аргументы представления формы, и понял, что не знаю, как представить в urlconf множественные значения из SELECT тег, отображаемый для ModelMultipleChoiceField ...

1 Ответ

1 голос
/ 21 мая 2010

Это может не отвечать на 100% вашего вопроса, но метод, который я использую для многозначных параметров в URL, состоит в том, чтобы передать их в виде непрозрачного большого двоичного объекта в представление и позволить этому выполнить декодирование.

# URLConf
(r'^foo/(?P<ids>([0-9]+,?)+)/)$', foo),

# View
def foo(request, ids):
    ids=ids.split(',')

# Reverse call
reverse(foo, ','.join(sorted(ids)))

Вызов sorted() гарантирует, что эквивалентные списки идентификаторов производят идентичные URL (при условии, что порядок ids не имеет значения). Вы также можете сделать ids a set, если не хотите дублировать значения.

...