- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为 View 的函数知道问题,但类不知道(args,kwargs来自url,空,post方法只有选择,但没有问题)。两者都有效,但为了添加检查,我想知道如何在类里面提出问题。它的 init 或 get_redirect_url 或 request 里面没有像 Question_id 这样的内容
url.py
from django.urls import path
from . import views
app_name = 'polls'
ulrpatterns=[
path('<int:question_id>/vote/', views.vote, name='vote'),
path('<int:pk>/vote0/', views.vote0.as_view(), name='vote0'),
]
View .py
class vote0(generic.base.RedirectView):
pattern_name = 'polls:results'
def get_redirect_url(self, *args, **kwargs):
selected_choice = get_object_or_404(Choice, pk(self.request.POST['choice']))
selected_choice.votes +=1
selected_choice.save()
return super().get_redirect_url(*args, **kwargs)
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
selected_choice = question.choice_set.get(pk=request.POST['choice'])
selected_choice.votes += 1
return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))
最佳答案
get_redirect_url
与 named URL 参数(**kwargs
)一起提供,因此您可以重写签名来捕获这些参数。例如:
class vote0(generic.base.RedirectView):
pattern_name = 'polls:results'
def get_redirect_url(self, *args<b>, question_id=None</b>, **kwargs):
question = get_object_or_404(Question<b>, pk=question_id</b>)
selected_choice = question.choice_set.get(pk=request.POST['choice'])
selected_choice.votes +=1
selected_choice.save()
return super().get_redirect_url(*args, **kwargs)
或者您可以访问 self.args
中的位置 URL 参数,以及 self.kwargs
中的命名 URL 参数> 也是如此。
如果我们看一下"derived"实现中,我们看到如果我们构造一个 RedirectView
只是作为一个普通 View ,它看起来像:
class RedirectView(View):
# ...
def get(self, request, *args, **kwargs):
url = self.get_redirect_url(**kwargs)
if url:
if self.permanent:
return http.HttpResponsePermanentRedirect(url)
else:
return http.HttpResponseRedirect(url)
else:
logger.warning('Gone: %s', self.request.path,
extra={
'status_code': 410,
'request': self.request
})
return http.HttpResponseGone()
def post(self, request, *args, **kwargs):
return self.get(request, *args, **kwargs)
调度程序因此将调用post
(它简单地包装get
),或直接调用get
。 get(..)
函数将进行调用并传递 **kwargs
参数。
关于python - Django 功能 View VS 类 RedirectView。如何使类 View 接受参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52132513/
有人知道吗,我可以将 SuccessMessageMixin 与 RedirectView 一起使用吗?因为当我在我的观点中使用它时: class CarRentView(SuccessMessage
假设我在我的 Django 1.6 项目中有这样一个 URL 设置: urlpatterns = patterns('', url(r'^some-path/', include('somea
我对 Spring 有点陌生,我想知道如何在 RedirectView 中 addOject 就像在 ModelAndView 中一样,我可以在其中添加可在 View 中使用的对象。 mnv = n
我有一个表单,它使用重定向 View 在用户按下按钮时创建一条记录。当只有一个参数要传递时,这很好用。但是,我现在希望基于两个参数来执行此操作 configuration_pk和 type_pk并返回
我有一个项目需要将旧网址重定向到新网址(我需要将它们保留一段时间)...我使用 RedirectView 类来执行此操作,但我必须设置硬编码的 url。 我的代码是这样的: class LegacyP
我有一个页面 check,我在其中添加了一个 flashAttribute("error","Test message"); 并将一个 RedirectView 返回到页面登录。 @RequestMa
既然你知道,我们不能在 Django 1.5 中使用 from django.views.generic.simple import redirect_to。但是我们在 views.py 中使用了这种
我认为错误来自于 RedirectView 参数中引入的 ulr,但我尝试了不同的 URL,但无法使其工作。 这是我的项目结构: 这是 Controller 包中 Spring MVC 的 get 方
我想添加 http header ,但它不起作用。我正在尝试使用打印来测试解决方案,但似乎什么也没有 这是我的代码,但不起作用: class MyRedirectView(RedirectView):
我有 2 个 tomcat 实例。两者都在代理 apache httpds 之后。我在 Spring Controller 中的代码如下所示: @RequestMapping(value = "/do
我遇到了这个奇怪的问题。 当我这样做时: from django.core.urlresolvers import reverse reverse('account-reco-about-you')
我正在使用 Spring 3.2.11.RELEASE 和 JUnit 4.11。在一个特定的 Spring Controller 中,我有一个这样结束的方法...... return new Mod
我试图让我的 a_detail 重定向到我的 a_detail_slug url。我想为此使用命名的 url,但我还没有成功,这是我尝试过的: url(r'^a/(?P\d+)/(?P[\w-]+)/
我想重定向 View ,以便它显示标题和 id_number,但我在标题中收到错误。 型号: from django.db import models from django.core.urlreso
作为 View 的函数知道问题,但类不知道(args,kwargs来自url,空,post方法只有选择,但没有问题)。两者都有效,但为了添加检查,我想知道如何在类里面提出问题。它的 init 或 ge
在带有 Jetty 的 Spring MVC 2.5 中(可能带有任何 servlet 容器),我想通过 ModelAndView 中 View 名称的神奇“redirect:”前缀使用 Redire
抱歉,如果这个问题应该出现在 Server Vault 中。我真的不知道这是编程错误还是服务器配置错误。 我最近将我的 git 提交推送到实时服务器,我注意到一些非常令人沮丧的事情。 无论我如何编辑
@RequestMapping(value = "/Foo/{id}/{friendlyUrl:.*}", method = RequestMethod.GET) public ModelAndVi
我有一个典型的 Spring MVC 在 Tomcat 上运行。将系统切换为在 HTTPS 上运行(在纯 HTTP 下一切正常)后,登录停止工作。原因是Spring的SecurityContextHo
我是一名优秀的程序员,十分优秀!