私はログインページ、登録ページを持っていて、ユーザーがログインした後に「処方箋を作成する」というボタンがあるこのdjangoプログラムを作っています。私の問題は、それが動作しないということです。djangoでURLを作成する方法
これはurls.py
です:
from createprescription.forms import *
from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout
from django.views.decorators.csrf import csrf_protect
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.template import RequestContext
@csrf_protect
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user = User.objects.create_user(
username=form.cleaned_data['username'],
password=form.cleaned_data['password1'],
email=form.cleaned_data['email']
)
return HttpResponseRedirect('/register/success/')
else:
form = RegistrationForm()
variables = RequestContext(request, {
'form': form
})
return render_to_response(
'registration/register.html',
variables,
)
def register_success(request):
return render_to_response(
'registration/success.html',
)
def logout_page(request):
logout(request)
return HttpResponseRedirect('/')
@login_required
def home(request):
return render_to_response(
'home.html',
{ 'user': request.user }
)
def createprescription(request):
return render(request, 'createprescription/createprescription.html', {})
そして、これは誤りである:これはviews.py
からである
from django.conf.urls import patterns, include, url
from createprescription.views import *
from . import views
urlpatterns = patterns('',
url(r'^$', 'django.contrib.auth.views.login'),
url(r'^logout/$', logout_page),
url(r'^accounts/login/$', 'django.contrib.auth.views.login'), # If user is not login it will redirect to login page
url(r'^register/$', register),
url(r'^register/success/$', register_success),
url(r'^home/$', home),
url(r'^$', views.createprescription, name='createprescription'),
)
Using the URLconf defined in cwbis.urls, Django tried these URL patterns, in this order:
^admin/
^$
^logout/$
^accounts/login/$
^register/$
^register/success/$
^home/$
^$ [name='createprescription']
The current URL, createprescription, didn't match any of these.
動作しないもの:のみ、あなたの処方箋ページを参照してくださいあなたの
views.py
に以下の行を追加して、ユーザーにログインできるようにするために?あなたは2つのリンクのための正規表現を繰り返していることに気づいた、最初のものだけが動作します –
あなたが訪問しようとしているURLは何ですか? – v1k45
"/ createprescription"と一致するURLがないことを示すエラーが表示されます。 –