如何在Django中从views.py中导入变量?

时间:2019-01-10 06:00:04

标签: python django python-3.x django-forms

我是Django的完整入门者,而对Python则比较陌生,尽管我对语言的基本语法很满意。我在Django中制作了一个发布表单,该表单接受了我的输入,并在过滤后将其分配给views.py文件中的变量,如下所示:

def index(request):
    if request.method == 'POST':
        form = NameForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']

    form = NameForm()    
    return render(request, './index.html', {'form': form})

'name'是从NameForm()表单存储的变量,该变量是从单独的表单文件创建和导入的。当我需要将“ name”变量导入另一个.py文件时,我的问题就开始了。第一种也是显而易见的方法是将视图导入到我的另一个文件中,但这不起作用。

由于某种原因,我不知道,作为Django新手,导入views.py文件非常有效,除非您必须运行该单独的.py文件,否则会出现错误:

” ImportError:无法导入名称'views'“
对此的明显响应是询问我是否引用了错误的目录,因为urls.py文件有效,所以我知道不是。我也知道我的Views文件天生没有错,因为它正确地路由了我的网址。

所以我不知道从这里去哪里。我的临时解决方案是将依赖于“名称”变量的整个其他文件引入到我的视图文件中。它可以正常工作,但是在我开始扩展网站时将无法工作。

我先感谢您的帮助。如果需要,我可以补充更多帮助,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

在处理了36个问题之后,我想出了一个简单的解决方案。我没有尝试将views.py导入到我的其他文件中,而是将该文件导入到views.py中,并且在提交发布请求时,它使用名称作为参数调用远程文件上的函数。我不确定这是否是最好的解决方案,但它比上一个更优雅。我只需要睡个好觉就可以想出来。