gpt4 book ai didi

使用 HttpResponseRedirect 的 Django 表单重定向

转载 作者:行者123 更新时间:2023-12-04 01:27:24 25 4
gpt4 key购买 nike

所以这不会太难,但我无法弄清楚......

我希望我在 django 中的表单(位于 /file_upload/ )上传文件,将其添加到数据库,然后重定向到一个新页面,其中参数是我所拥有的字段的 id添加到数据库中(例如位于 /file/163/ )。

我已经设置了 urls.py 以便 /file/163/如果您直接导航到那里,效果很好,但我不知道如何从 到达那里/文件/上传/ .

我的代码是这样的:

def add(request):
if request.method == 'POST': # If the form has been submitted...
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
# do stuff & add to database
my_file = FileField.objects.create()
return HttpResponseRedirect(reverse('/file/', args=[my_file.id]))

我不能用 this solution因为在处理views.py 中的表单之前我不知道字段id 将是什么,所以重定向必须发生在views.py 中。我认为。

有什么想法吗?

最佳答案

您对表单的 View 应如下所示:

def add(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
# do stuff & add to database
my_file = FileField.objects.create()
# use my_file.pk or whatever attribute of FileField your id is based on
return HttpResponseRedirect('/files/%i/' % my_file.pk)
else:
form = UploadFileForm()

return render_to_response('upload_file.html', {
'form': form,
})

关于使用 HttpResponseRedirect 的 Django 表单重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1577294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com