我有一个视图,从HTML表单接收一个帖子请求,我喜欢做一些过程,然后发送另一个帖子请求到另一个视图与一些原始数据,以及我添加到它的一些更多数据,< / p>
我读到HTTP不允许传递您收到的相同帖子请求。
我阅读了官方文档并且没有找到这样做的方法,我读到了关于库请求的内容,当我尝试使用它然后发送httpresponseredirect
我发出的请求时,它通过在地址栏中写下大量的东西来继续发送它作为帖子,它看起来有点像尝试使用get而不是post。
我在这里找到了这些问题:
Which function in django creates a HttpRequest instance and hands to a view?
Simulating a POST request in Django
但我不了解它如何从我的django应用程序以有效的方式创建请求,并将其发送到另一个应用程序的另一个视图。
post_data = {'name': 'something'}
response = requests.post('http://localhost:8000/polls/thanks/', name = "somthing")
content = response.content
return HttpResponseRedirect(content)
答案 0 :(得分:1)
视图只不过是python中的函数,因此没有任何东西阻止您将参数传递到单独的视图中。是否总是一件好事是另一回事
def view_a(request):
# Logic here
return view_b(request)
根据您的评论:
您尝试做的事情似乎是一种用.get
方法可以实现的长途跋涉方式
last_name = request.POST.get('last_name', generate_name())
如果提供了姓氏,它将使用姓氏,否则将生成一个。
如果你正在使用表单,你可以做同样的事情,只需要用干净的方法
def clean_last_name(self):
last_name = self.cleaned_data.get('last_name')
if last_name:
return last_name
else:
return generate_name()