2017-03-16 11 views
1

私はジャンゴに関するチュートリアルをやっていると私は2個のエラーがあります:DisallowedRedirectジャンゴ

  1. 私は植物をデータに保存されている植物を作成しようが、私はこのエラーを取得:

    Exception Type: DisallowedRedirect 
    
    Exception Value: Unsafe redirect to URL with protocol 'data' 
    
  2. 私が編集しようとすると、私は

    Exception Type: NoReverseMatch 
    
    Exception Value: Reverse for 'plants' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 
    
このエラーが出ます

私の間違いを見つけることを楽しみにしています。

views.py:

def create_plant(request): 

    if not request.user.is_authenticated(): 
     return render(request, 'data/login.html') 
    elif request.method == "POST": 
     form = PlantForm(request.POST) 
     if form.is_valid(): 
      plant = form.save(commit=False) 
      plant.save() 
      return redirect('data:plants.html', slug = plant.slug) 
    else: 
     form=PlantForm() 
    template = 'data/create_plant.html' 
    context = {'form': form, } 
    return render(request, template, context) 

def edit_plant(request, slug): 

    plant = get_object_or_404(Plant, slug=slug) 
    if request.method=="POST": 
     form = PlantForm(request.POST, instance=plant) 
     if form.is_valid(): 
      plant = form.save(commit=False) 
      plant.save() 
      return redirect('data:plants') 
    else: 
     form = PlantForm(instance=plant) 
    template = 'data/create_plant.html' 
    context = {'form': form} 
    return render(request, template, context) 

urls.py:

from django.conf.urls import url 
from . import views 

app_name = 'data' 

urlpatterns = [ 

    url(r'^$', views.home, name='home'), 
    url(r'^plants/$', views.index, name='index'), 
    url(r'^create_plant/$', views.create_plant, name='create_plant'), 
    url(r'^logout_user/$', views.logout_user, name='logout_user'), 
    url(r'^login_user/$', views.login_user, name='login_user'), 
    url(r'^register/$', views.register, name='register'), 
    url(r'^plants/(?P<slug>[-\w]+)/$',views.detail, name='detail'), 
    url(r'^plants/(?P<slug>[-\w]+)/edit/$', views.edit_plant, name='edit_plant'), 
    url(r'^(?P<plant_id>[0-9]+)/delete_plant/$', views.delete_plant, name='delete_plant'),] 
+0

'data:'と '.html'の両方を削除してみてください – Scovetta

+0

問題が戻ってきました。 redirect( 'data:plants.html'、slug = plant.slug)リダイレクトを返す必要があります( 'data:index') – George

答えて

0

問題がリターンリダイレクト(であった 'データ:plants.html'、スラグ= plant.slug 3時間前