Python Django在POST中使用查询参数

Python Django在POST中使用查询参数,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我有一个视图,当它被提交时,它应该向一群用户发送一封电子邮件 我使用表单输入电子邮件内容,然后根据URL的查询参数从数据库向用户发送电子邮件 我这样做是因为用户是在单独的页面上选择的。 因此url看起来类似于/sendmail/?users=18,21,32。因为我使用的是表单,所以我在中的视图继承自FormView,我的电子邮件代码位于form\u valid 问题是我似乎无法从该函数访问查询参数self.request.GET为空,self.request.POST仅具有表单字段值 我认为应

我有一个视图,当它被提交时,它应该向一群用户发送一封电子邮件

我使用表单输入电子邮件内容,然后根据URL的查询参数从数据库向用户发送电子邮件

我这样做是因为用户是在单独的页面上选择的。
因此url看起来类似于
/sendmail/?users=18,21,32
。因为我使用的是表单,所以我在中的视图继承自
FormView
,我的电子邮件代码位于
form\u valid

问题是我似乎无法从该函数访问查询参数
self.request.GET
为空,
self.request.POST
仅具有表单字段值

我认为应该使用的方法是将一个隐藏的
users
字段添加到表单中(键入
modelmultipechoicefield
),我从url查询填充该表单

问题是我不知道怎么做。 我试着像这样重新实现
get_initial
,但似乎什么都没做:

def get_initial(self):
    if 'users' in self.request.GET:
        users = self.request.GET['users'].split(',')
        return {'users': User.objects.filter(pk__in=users)}
这是正确的方法,还是有更好的方法?如果方法是正确的,那么我做错了什么

我使用以下定义隐藏字段:

users = forms.ModelMultipleChoiceField(queryset=User.objects.all(), widget=forms.MultipleHiddenInput(),
                                       required=False)

编辑:更多的实验,如果我不隐藏
用户
表单字段,它似乎会起作用。所以看起来初始数据没有填充到隐藏字段

使用此模式获取get参数,它将处理不存在的参数

/myview/?users=18,21,32

def myview(request):
    users = request.GET.get('users', None)
    if users:
        user_ids = users.split(',')

如果参数不存在,则必须以错误的方式调用它

您可以尝试将其作为数据传递到表单中,而不是
请求。POST
-
请求
包括来自POST和GET的数据。

参数存在,但仅在发布之前,而且它们似乎没有填充到表单中。如何在表单中隐藏字段,可以显示表单代码吗?@Igor我更新了我的问题