Django - urls.py в проекте и url.py в приложении

Я пытаюсь перенаправить действие формы на другую страницу, однако я не слишком разбираюсь в структуре Django. Я прошел учебник по опросам.

Текущий urls.py в моем проекте:

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

urlpatterns = patterns('',
 url(r'^admin/', include(admin.site.urls)),
 url(r'^webapp/', include('WebApp.urls', namespace="WebApp")),
 url(r'^stripcal/', include('StripCal.urls', namespace="StripCal")),
)

The url.py in my stripcal app is:

from django.conf.urls import patterns, include, url
from django.contrib import admin
from StripCal import views

urlpatterns = patterns('',
 url(r'^$', views.index, name='index'),
 url(r'^run', views.detail, name='detail'),
)

Когда я ввожу

http://127.0.0.1:8000/stripcal/
http://127.0.0.1:8000/webapp/

Он успешно переходит к двум различным приложениям. Однако я не слишком хорошо знаком с синтаксисом {% url 'app_name: view_name'%}. Кажется, что 'app_name: view_name' становится /app_name/view_name

Это мой текущий взгляд:

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic

# Create your views here.

def index(request):
 context = {'somethingDownByCelery': "heh"}
 return render(request, 'StripCal/index.html', context)

def detail(request):
 context = {'somethingDownByCelery': "heh"}
 return render(request, 'StripCal/detail.html', context)

Мой индекс.html

{% load staticfiles %}


<form action="{% url 'stripcal:detail'%}" method="post">
 {% csrf_token %}
 <p> StripCal Input </p>
 <textarea name="StripCal_Input" cols="30" rows="10"> </textarea>
 
</form>

My Detail.html

{% load staticfiles %}


Hello Detail!

Когда я удаляю action = {% url 'stripcal: detail'%}, загружается веб-страница, однако, когда я ее вставляю, страница даже не загружается (HTTP 500).

1 ответ

попробуйте изменение: StripCal.url.py

urlpatterns = patterns('StripCal.views',
url(r'^$', 'index', name='index'),
url(r'^run','detail', name='detail'),

)

licensed under cc by-sa 3.0 with attribution.