2014-02-11 65 views
0

由於某種原因,我的網址無效。我得到了404,「'找不到'。這裏是我的urls.py:Django網址無法按預期方式工作

url(r'^assets/new', 'watershed.views.new_asset', name='new_asset'), 

有一個在我的urls.py多了很多,但是這是唯一一個包含「資產」,在它的詞。如果我將這個網址更改爲任何/新的,它可以工作。如果我拼錯資產(assettss/new),它會起作用。如果我拿出/新的只是使用「資產」,它也可以正常工作。在我的視圖文件夾我有一個初始化__其中__.py包含以下內容:

from groups import * 
from members import * 
from leave_group import * 
from payments import * 
from assets import * 

我也有一個assets.py,它包含以下內容:

from django.contrib.auth.decorators import login_required 
from watershed.models import Member, Org, OrgToMember, Asset 
from django.shortcuts import render, redirect 
from django.contrib.auth.models import User 

def new_asset(request): 
    return render(request, 'asset_add.html') 

我不知道是什麼的Django不喜歡資產/新。

更新:這是我的全urls.py

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
# Examples: 
url(r'^', include('outside.urls')), 
url(r'^blog', include('blog.urls')), 
url(r'^admin', include(admin.site.urls)), 
url(r'^logout', 'watershed.views.logout', name='logout'), 
url(r'^register/create', 'watershed.views.create', name='create'), 
url(r'^register', 'watershed.views.register', name='register'), 
url(r'^translog/(\d+)', 'watershed.views.translog', name='translog'), 
url(r'^settings', 'watershed.views.settings', name='settings'), 

# Group URIs 
url(r'^groups/(\d+)/leave', 'watershed.views.leave_group', name='leave_group'), 
url(r'^groups/(\d+)/dissolve', 'watershed.views.dissolve_group', name='dissolve_group'), 
url(r'^groups/new', 'watershed.views.add_group_form', name='add_group_form'), 
url(r'^groups/(\d+)', 'watershed.views.dashboard', name='dashboard'), 
url(r'^groups/add', 'watershed.views.add_group', name='add_group'), 
url(r'^groups', 'watershed.views.groups', name='groups'), 

# Member URIs 
url(r'^members/(\d+)', 'watershed.views.profile', name='profile'), 
url(r'^member/login', 'watershed.views.login', name='login'), 

# Payments URIs 
url(r'^payments', 'watershed.views.payments', name='payments'), 

# Asset URIs 
url(r'^assets/new', 'watershed.views.new_asset', name='new_asset'), 
+0

顯示更多的urls.py ...它們在文件中定義的順序很重要。這聽起來像你有'資產/'獲得匹配前'r'^ assets/new''的另一個url – Anentropic

+0

urls.py完整,只是增加 – Progger

+0

可能你的問題在這裏:'url(r'^', include('outside.urls')),'你應該使用^ $作爲url匹配器,outside.urls中有什麼? – imandrewd

回答

0

您在assets.py文件new_assets功能containts,你買從views.py文件導入該功能。使用這個:

url(r'^assets/new', 'path.to.assets.new_asset', name='new_asset'), 
+0

我可以通過watershed.views.assets.new_asset或者通過watershed.views.new_asset訪問new_asset函數 - 這兩個工作。那麼,既不工作,但這就是我發佈的原因。 – Progger

0

我想通了。問題是我的settings.py中的靜態url是 - 等待它:

STATIC_URL = '/assets/' 

因此,顯然,其中一個必須改變。

相關問題