从 django 类中的视图访问变量值

Posted

技术标签:

【中文标题】从 django 类中的视图访问变量值【英文标题】:access variable value from view within a django class 【发布时间】:2013-11-20 16:33:26 【问题描述】:

我目前有一个类urldata.py,有一个循环:

from Scanner.views import Processinitialscan
    for element in elements:
        dbInsert = PathsOfDomain(pathToScan=element.attrs["href"],FKtoTld=Processinitialscan.)
        dbInsert.save()

我有一个带有变量EnteredDomainRowIDview.py,我想在上面的class 中使用它:

def Processinitialscan(request):
    EnteredDomainRowID = GetEnteredDomainObjects.pk

我一直在尝试:

FKtoTld=Processinitialscan.EnteredDomainRowID 

在:

dbInsert = PathsOfDomain(pathToScan=element.attrs["href"],FKtoTld=Processinitialscan.)

但是,这似乎不起作用。

我的问题,对于变量dbInsert,我如何从views.py 中的views.py 访问变量EnteredDomainRowID 中的值以获取变量dbInsert(如上所示)?

另外,我似乎无法将 views.py 导入到 urldata.py 中,这不可能吗?

任何帮助都非常非常感谢。

谢谢。

【问题讨论】:

你想让Processinitialscan 成为一个类,EnteredDomainRowID 成为一个类属性吗? 不,processInitialScan 是 view.py 中的一个视图。我基本上需要获取 EnteredDomainRowID 的值(在 views.py 中)并在 urldata.py 中使用它。这有意义吗 好吧,这没有任何意义。 Django 视图是 HTTP 请求的控制器。如果您在视图中实例化您的类,则可以将EnteredDomainRowID 传递给它。请描述您的工作流程。您打算如何使用来自urldata.py 的课程? 调用的时候为什么不能直接把值传给urldata.py中的函数呢? 但是你为什么要这样做呢?它是由请求处理程序调用的视图,因此视图应该导入 urldata,然后调用其中的函数,传递值。 【参考方案1】:

不幸的是,这不是 python 的工作方式EnteredDomainRowID 不是函数对象的属性,而是函数的局部变量。

您可以很容易地将其转换为class based view,这样您就可以轻松访问类属性。

【讨论】:

根据您的最后一点,这种情况下的最佳做法是什么? @CodeTalk 更新链接,django 文档会比我做得更好 基于类的视图是最佳实践吗? @CodeTalk 不一定,django 允许您使用基于函数或基于类,这不是问题。基于类的只是类。您可以设置一个类属性并像您在示例中尝试那样访问它 你能给我一个设置类属性和访问它的例子吗?

以上是关于从 django 类中的视图访问变量值的主要内容,如果未能解决你的问题,请参考以下文章

如何更改内部类中的变量值[closed]

C#如何将新变量的基类中的变量值更改为派生类

从另一个类中的受保护方法中获取变量值

Django Templates — 将模板中的变量值传递给 templatetags 过滤器

django 可以修改模板中的变量值吗?

Django:如何将python变量值传递给javascript文件?