2017-01-21 15 views
1

私はDjangoを初めて使い、徐々に動作する方法を学びます。私はちょうど1.10にアップグレードし、私のアプリの一部は動作を停止しました。私はそれがReverseに加えられた変更に関連していることを知っています。私は読んでいて、私が間違っていることを正確に見つけることができません。ほぼすべてが、いくつかの例外を除いてはうまくいきます。次のように動作は次のとおりです。私のアプリで Djangoの逆エラー1.10

1)私は予約が作成/読み込み、それが動作

完全に私は私の予約を作成することができます

2)私が作成する]をクリックすると、予約が実際に作成し、データベースに保存されますブラウザは間違ったアドレスに送信されます。予約/予約番号の代わりに予約/予約番号に送信されます(詳細はここで予約/ 2)。逆エラー(この記事に含まれています)を表示します。

3)実際に作成されたことを示しています。

4)また、すぐに予約に行くならば、既に作成したすべてのもののリストを表示するべきですが、代わりに逆エラーも表示されます。

私が間違っていることを理解する助けに本当に感謝します。

Models.py

class Reservation(models.Model): 
    res_number = models.AutoField(primary_key=True) 
    date = models.DateField(default=datetime.date.today()) 
    status = models.CharField(max_length=10,default="Created") 
    reservation_type = models.CharField(max_length=11,choices=shced_type_choices, default="rental") 
    aircraft = models.ForeignKey('aircraft.Aircraft') 
    renter = models.CharField(max_length=30,blank=False,null=False) 
    instructor = models.CharField(max_length=30,blank=True,null=False) 

    def get_absolute_url(self): 
     return reverse("reservations:detail", kwargs={"res_number": self.res_number}) 

メインurls.py

url(r'^reservations/', include('dispatch.urls', namespace='reservations')), 

Dispatch.urls

from django.conf.urls import include, url 
from django.contrib import admin 
from .views import (
    reservations_list, 
    reservations_detail, 
    reservations_edit, 
    reservations_dispatch, 
    reservations_close, 
    reservations_cancel, 
    reservations_create, 
    reservations_close, 
) 


urlpatterns = [ 

    url(r'^$', reservations_list), 
    url(r'^(?P<res_number>\d+)/$', reservations_detail), 
    url(r'^(?P<res_number>\d+)/edit/$', reservations_edit), 
    url(r'^(?P<res_number>\d+)/dispatch/$', reservations_dispatch), 
    url(r'^(?P<res_number>\d+)/close/$', reservations_close), 
    url(r'^(?P<res_number>\d+)/cancel/$', reservations_cancel), 
    url(r'^create/$', reservations_create), 
    url(r'^close/$', reservations_close), 

] 

Views.py

from django.contrib import messages 
from django import forms 
from django.http import HttpResponse, HttpResponseRedirect 
from django.shortcuts import render, get_object_or_404 
from .forms import ReservationForm, CloseReservationForm 
from .models import Reservation 

def reservations_list(request): 
    queryset = Reservation.objects.all() 
    context = { 
     "object_list": queryset, 
     "title": "List of Reservations:" 

    } 
    return render(request, "dispatch/list.html", context) 

def reservations_detail(request, res_number=None): 
    instance = get_object_or_404(Reservation, res_number=res_number) 
    context = { 
     "title": instance.renter, 
     "instance": instance, 

    } 
    return render(request, "dispatch/details.html", context) 


def reservations_create(request): 
    form = ReservationForm(request.POST or None) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     print(instance.aircraft.hobbs) 
     instance.save() 
     messages.success(request, "Reservation Created") 
     return HttpResponseRedirect(instance.get_absolute_url()) 

    context = { 
    "form": form, 
    } 
    return render(request, "dispatch/create.html", context) 

Details.html

{% extends "dispatch/base.html" %} 
{% block head_title %}{{ block.super }} | {{instance.res_number}}{% endblock head_title %} 
{% block content %} 

<h1>Reservation for {{title}} on {{instance.date}}</h1> 


Reservation Number: {{instance.res_number}}</br> 
Date: {{instance.date}}</br> 
Status: {{instance.status}}</br> 
Reservation Type: {{instance.reservation_type}}</br> 
Aircraft: {{instance.aircraft}}</br> 
Renter's Name: {{instance.renter}}</br> 
Instructor's Name: {{instance.instructor}}</br> 
Expected Flight Hours: {{instance.expected_hours}} Hrs</br> 
Actual Flown Hours: {{instance.flown_hours}} Hrs</br> 
Reservation Created on: {{instance.created}}</br> 
Last Updated on: {{instance.updated}}</br> 

{% endblock content %} 

Create.html

{% extends "dispatch/base.html" %} 

{% block head_title %}{{ block.super }} | Create{% endblock head_title %} 

{% block content %} 

<h1>Create Reservation</h1> 

<form method='POST' action=''>{% csrf_token %} 

{{form.as_p}} 
<input type="submit" name="Create Reservation"> 

</form> 

{% endblock content %} 

Reverse error screenshot

答えて

1

ルートに名前がないという問題があります。したがって、reverse('some_name')を使用している場合は、そのような名前を定義する必要があります。また、スクリーンショットのようにトレースバックを挿入しないでください(パラメータnameを参照)

urlpatterns = [ 
    url(r'^(?P<res_number>\d+)/$', reservations_detail, name='detail'), 
] 

名は、あなたのケースではdetailあるので、あなたはこのような何かをしたいです。リンクの「コピー&ペースト表示に切り替える」が表示されますか?ええ、次回はそれを使ってください。

+0

yedpodtrzitko、ありがとうございます!そのトリックをした。また、トレースバックの投稿についてお知らせしてくれてありがとう。 – aitor11

+0

@ aitor11感謝する必要はありません。それは、「回答を受け入れる」チェックボタンのためのものです。 – yedpodtrzitko

関連する問題