当前位置: 首页 > 面试题库 >

基于Django类的视图:如何将其他参数传递给as_view方法?

姬念
2023-03-14
问题内容

我有一个基于类的自定义视图

# myapp/views.py
from django.views.generic import *

class MyView(DetailView):
    template_name = 'detail.html'
    model = MyModel

    def get_object(self, queryset=None):
        return queryset.get(slug=self.slug)

我想像这样传递slug参数(或其他参数到视图)

MyView.as_view(slug='hello_world')

我是否需要重写任何方法才能做到这一点?


问题答案:

传递给该as_view方法的每个参数都是View类的实例变量。这意味着要添加slug作为参数,您必须在子类中将其创建为实例变量:

# myapp/views.py
from django.views.generic import DetailView

class MyView(DetailView):
    template_name = 'detail.html'
    model = MyModel
    # additional parameters
    slug = None

    def get_object(self, queryset=None):
        return queryset.get(slug=self.slug)

那应该MyView.as_view(slug='hello_world')起作用。

如果您通过关键字传递变量,请使用Erikkson先生建议的内容:

如果您的urlconf看起来像这样:

url(r'^(?P<slug>[a-zA-Z0-9-]+)/$', MyView.as_view(), name = 'my_named_view')

那么该子弹将在您的视图函数(例如“ get_queryset”)中可用,如下所示:

self.kwargs['slug']


 类似资料:
  • 问题内容: 我有一个基于类的自定义视图 我想像这样传递slug参数(或其他参数到视图) 我是否需要重写任何方法才能做到这一点? 问题答案: 传递给该方法的每个参数都是View类的实例变量。这意味着要添加作为参数,你必须在子类中将其创建为实例变量: 那应该起作用。

  • 我试图在一个基于类的视图实例中传递参数,但我无法找到正确的方法。 我的api服务在REST框架视图中工作良好,并接收两个强制参数(用户和语言): 我找到了类似的答案,但发送参数作为回报,那不是我的情况。这是我的决定, 只发送值: api/urls.py API/API.PY 额外的:我如何发送一个额外的可选参数? 非常感谢,如有任何帮助,我们将不胜感激:)

  • 问题内容: 在我的RCP应用程序中,左侧有一个用于导航的视图,右侧有一个用于视图的文件夹。透视图看起来像这样: 我想根据用户在导航树中选择的内容打开不同的视图。认为这并不难。我的导航树视图: 这似乎很好。仅有一个小问题:我需要以某种方式将对象(例如,selectedItem)传递给我的视图,以使用户与其内容进行交互。我怎么做? 我看到了一些示例,其中一些同事编写了自己的视图,并将其放置在右侧。然后

  • 在模板中,我有一些这样的代码: 这是“脚本”部分: 我想为选定的学生添加一些新课程,为了做到这一点,我创建了获取课程ID号和课程分数的表单。首先,当我填写表单时,当我点击“添加”按钮时,javascript创建表格,我可以添加许多课程,然后当我应该提交它以在视图部分执行其他步骤并将所有课程保存在数据库中时。我有一些问题,如果有人帮助我,我很高兴。 1)如何将“stock”数组(javaScript

  • 问题内容: 该文档讨论了使用numba的作为的参数。我需要带有附加参数的相同内容。 我基本上是想做这样的事情: 但是,它不起作用,因为应该是/并且不能将它们转换为。我收到以下错误消息: 我没有找到有关如何从Numba中提取值的任何信息。在C语言中,应该类似于—在Numba中可以做同样的事情吗? 问题答案: 1.通过传递额外的参数 该文件说: 如果用户希望改善集成性能,则可以使用以下签名之一: 该是

  • 问题内容: 我在Django应用程序中有一个用户注册表格,该表格收集用户尝试注册时的其他数据,例如地址,城市,国家/地区,电话号码等。 该数据通过信号保存在“帐户”模型类中。用户创建过程如下所示: 在这里,当用户发布表单时将调用该函数,在该函数下,我可以获得POST数据,我想要的是将该数据传递给方法,以便其填充模型中的字段。 现在,我确实看到了在数据库中创建的对象,但是除用户字段之外的所有字段均为