Предварительно заполнить ManyToManyField с несколькими вариантами выбора через URL? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь передать несколько переменных, созданных с помощью набора форм, в поле M2M другой формы через URL-адрес.

Например, представьте, что у меня есть 2 модели: одна из актеров и одна из фильмов. При настройке моих моделей пользователь сначала добавляет всех актеров (при условии, что они еще не существуют в базе данных), затем они перенаправляются в следующую форму, чтобы добавить mov ie, где я ' Мне бы хотелось, чтобы актеры были предварительно заполнены в поле M2M. Я смог сделать это с одним актером, передавая идентификатор актера через URL, но не могу понять, как это сделать с помощью кратных.

Вот код:

models.py

class Actors(model.Model):
      name = CharField

class Movies(model.Model):
     name = CharField
     actors = ManyToManyField(Actors)

views.py

def addmovie(request, actor_id):
     if request.method == 'POST':
         ...
     if request.method == 'GET':
         data = {'name': actor_id}
         form = AddMovieForm(initial = data)
         ...

urls.py

path('add/movie/<actor_id>', views.addmovie)

Приведенное выше будет предварительно заполнять поле Actor внутри AddMovieForm с помощью один актер. Как мне сделать это несколькими актерами? Мой план состоял в том, чтобы передать их все через URL, а затем проанализировать их в форме, но я не могу понять, как на самом деле сделать несколько значений, выбранных в поле M2M.

Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2020

Неважно, это было очень просто исправить! Изменено

data = {'name': actor_id}

на

data = {'name': [actor_id1, actorid2, actorid3]}
...