将views.py分解成多个文件 [英] split views.py into multiple files

查看:148
本文介绍了将views.py分解成多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将 views.py 文件分解为视图文件夹中的多个文件时遇到麻烦。我尝试过这个问题的方法,但是我不断收到错误消息。



文件结构:

  users / 
__init__.py
urls.py
个视图/
__init__.py
sign_in_out_up.py

urls.py:

 从用户导入视图作为用户

urlpatterns = patterns('',
url(r'^ signup /',user.sign_in_out_up.signup),
url(r'^ signin /',user.sign_in_out_up.signin),
url(r'^ signout /',user.sign_in_out_up.signout),

当我尝试上面的代码,我得到一个错误,说'模块'对象没有属性'sign_in_out_up'



我在 urls.py 中尝试过 users.views.sign_in_out_up.signup ,但是错误更改为名称'用户'未定义,这似乎是一个倒退的步骤。



我也尝试从sign_in_out_up import * views / __ init __。py



有其他人有问题或有任何建议? / p>

解决方案

正常地将代码写入 urls.py (即导入从视图模块的视图,就好像它是 views.py )并添加到 __ init__

确保您可以继续在视图中分割视图模块,而不必一直更新 urls.py


I am having some trouble splitting my views.py file into multiple files in a views folder. I tried the methods from this question, but I keep getting an error message.

file structure:

users/
   __init__.py
   urls.py
   views/
      __init__.py
      sign_in_out_up.py

urls.py:

from users import views as user

urlpatterns = patterns('',
    url(r'^signup/', user.sign_in_out_up.signup),
    url(r'^signin/', user.sign_in_out_up.signin),
    url(r'^signout/', user.sign_in_out_up.signout),
)

When I try the above code, I get an error saying 'module' object has no attribute 'sign_in_out_up'.

I have tried users.views.sign_in_out_up.signup in urls.py, but then the error changes to name 'users' is not defined, which seems to be a step backwards.

I have also tried putting from sign_in_out_up import * in views/__init__.py

Has anyone else had problems with this or have any suggestions?

解决方案

Write your code in urls.py as normal (i.e., import the view from that views module as if it were views.py) and add to __init__.py within views:

from sign_in_out_up import *

This ensures you can continue to split up views in the views module without having to update urls.py all the time.

这篇关于将views.py分解成多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆