在 Python 中合并 Returns 基于函数的视图 Django
Combined Returns in Python Function Based Views Django
我目前正在使用 Django 构建一个网站,我已经到了需要在屏幕上打印数据 (ListView) 并在同一页面 (模板) 上更新 (UpdateView) 数据的地步。根据我的发现,我无法使用 Django 通用视图轻松完成此操作,因此我将我的视图重写为基于函数的视图。当前这段代码通过对 HTML.
的一些更改完美地更新了我需要的内容
def DocPostNewView(request, pk):
context = {}
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context["form"] = form
posts = DocPost.objects.all()
return render(request, "my_app/use_template.html", context)
... 下面这段代码完美地列出了对象,并对 HTML.
进行了一些更改
def DocPostNewView(request, pk):
context = {}
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context["form"] = form
posts = DocPost.objects.all()
return render(request, 'my_app/use_template.html', context={'posts': posts})
我只需要结合这些,唯一真正的区别是两个(相同)函数底部的 return 命令。我如何合并 RETURNS 以便我可以在同一页面上列出数据和更新数据???
谢谢
这对你有用吗?
def DocPostNewView(request, pk=None):
posts = DocPost.objects.all()
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context = {"form":form, "posts":posts}
return render(request, "my_app/use_template.html", context)
在您的模板中,您可以使用“posts”来列出每个 post,
您可以使用“表单”来更新特定的 post、
事情是,对于您进行的每次更新,您将始终看到 post 的整个列表,如果这是您想要实现的
我目前正在使用 Django 构建一个网站,我已经到了需要在屏幕上打印数据 (ListView) 并在同一页面 (模板) 上更新 (UpdateView) 数据的地步。根据我的发现,我无法使用 Django 通用视图轻松完成此操作,因此我将我的视图重写为基于函数的视图。当前这段代码通过对 HTML.
的一些更改完美地更新了我需要的内容def DocPostNewView(request, pk):
context = {}
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context["form"] = form
posts = DocPost.objects.all()
return render(request, "my_app/use_template.html", context)
... 下面这段代码完美地列出了对象,并对 HTML.
进行了一些更改def DocPostNewView(request, pk):
context = {}
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context["form"] = form
posts = DocPost.objects.all()
return render(request, 'my_app/use_template.html', context={'posts': posts})
我只需要结合这些,唯一真正的区别是两个(相同)函数底部的 return 命令。我如何合并 RETURNS 以便我可以在同一页面上列出数据和更新数据???
谢谢
这对你有用吗?
def DocPostNewView(request, pk=None):
posts = DocPost.objects.all()
obj = get_object_or_404(DocPost, id=pk)
form = GeeksForm(request.POST or None, instance=obj)
if form.is_valid():
form.save()
return HttpResponseRedirect("/" + id)
context = {"form":form, "posts":posts}
return render(request, "my_app/use_template.html", context)
在您的模板中,您可以使用“posts”来列出每个 post, 您可以使用“表单”来更新特定的 post、
事情是,对于您进行的每次更新,您将始终看到 post 的整个列表,如果这是您想要实现的