2016-03-28 18 views
0

私はログインページ、登録ページを持っていて、ユーザーがログインした後に「処方箋を作成する」というボタンがあるこの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. 
+0

動作しないもの:のみ、あなたの処方箋ページを参照してくださいあなたのviews.pyに以下の行を追加して、ユーザーにログインできるようにするために

?あなたは2つのリンクのための正規表現を繰り返していることに気づいた、最初のものだけが動作します –

+0

あなたが訪問しようとしているURLは何ですか? – v1k45

+0

"/ createprescription"と一致するURLがないことを示すエラーが表示されます。 –

答えて

0

あなたは自分のホームページのログインを強制しようとしているが、これはではない thそれを実装する方法。これらの2つのURLが矛盾していると、システムが最初に使用します。

url(r'^$', 'django.contrib.auth.views.login'), 
url(r'^$', views.createprescription, name='createprescription'), 

エラーを解決するために、あなたはあなたのurls.pyからライン

url(r'^$', 'django.contrib.auth.views.login'), 

を削除する必要があります。

from django.contrib.auth.decorators import login_required 
... 
@login_required 
def createprescription(request): 
    ... 
+0

それは動作しません –

+0

私は最初のURLを削除する場合私はログインすることができません –

関連する問題