从 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()
我有一个带有变量EnteredDomainRowID
的view.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 类中的视图访问变量值的主要内容,如果未能解决你的问题,请参考以下文章