通过URL通过多个选择预填充ManyToManyField吗?

问题描述 投票:0回答:1

我正在尝试将通过表单集创建的多个变量通过URL传递给另一个表单的M2M字段。

例如,假设我有两个模特:一个演员,一个电影。我设置模型的方式是,用户将首先添加所有演员(假设它们在数据库中尚不存在),然后将它们转发到下一个表单以添加电影,我希望在其中要在M2M领域中预先填写的演员。我已经能够通过单个演员执行此操作,将演员ID通过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中的Actor字段。如何使它成为多个演员?我的计划是将所有内容都通过URL传递,然后将其解析为表单,但无法弄清楚如何在M2M字段中实际选择多个值。

谢谢!

django manytomanyfield
1个回答
0
投票

没关系,这是一个非常简单的解决方法!已更改

data = {'name': actor_id}

to

data = {'name': [actor_id1, actorid2, actorid3]}
© www.soinside.com 2019 - 2024. All rights reserved.