[英]How can I use checkbox selected values in Django query parameters?
I am developing a webapp and its works in the manner that when users selects values from a checkbox, its description is displayed. 我正在开发一个webapp,它的工作方式是当用户从复选框中选择值时,会显示其描述。 I am currently calling a function which in turn will call another function, I am doing so as I want to use GET instead of POST because since there is no server side alteration hence GET is better instead of POST. 我正在调用一个函数反过来调用另一个函数,我这样做是因为我想使用GET而不是POST,因为没有服务器端更改因此GET更好而不是POST。 How can I achieve this using a single function using GET and query parameters ? 如何使用GET和查询参数使用单个函数实现此目的? Below is my code. 以下是我的代码。
Here is my urls.py : 这是我的urls.py :
url(r'^view_task_description/$', views.view_task_description, name='view_task_description'),
url(r'^view_task_description/(?P<pk>[0-9]+)/$', views.get_task_description, name="get_task_description"),
Here is my views.py : 这是我的views.py :
@login_required
def view_task_description(request):
if request.method == 'POST':
task_description = GetTaskDescription(data=request.POST, user=request.user)
if task_description.is_valid():
obj = GetTaskDescription.get_task_description(task_description)
return redirect('get_task_description', pk=obj[0].pk)
return render(request, 'todoapp/select_task_description.html', context={'view_tasks': GetTaskDescription(user=request.user)})
@login_required
def get_task_description(request, pk):
obj = get_object_or_404(Task, pk=pk)
return render(request, 'todoapp/task_desc.html', context={'description': obj.description})
Here is my forms.py : 这是我的forms.py :
class GetTaskDescription(forms.Form):
get_tasks = forms.ModelMultipleChoiceField(
queryset=Task.objects.none(),
widget=forms.CheckboxSelectMultiple,
required=True
)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
super(GetTaskDescription, self).__init__(*args, **kwargs)
self.fields['get_tasks'].queryset = self.user.task_set.all()
def get_task_description(self):
tasks = self.cleaned_data['get_tasks']
return tasks
在视图中更改表单数据的来源:
task_description = GetTaskDescription(data=request.GET, user=request.user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.