2017-12-29 4 views
0

私はDjangoで非常に新しいです。これがバグかエラーかはわかりません。ここでDjango 2.0 CreateViewが動作しません

from django.db import models 
from core.models import TimeStampModel 
from django.urls import reverse 
# Create your models here. 
class Vehicle(TimeStampModel): 
    maker = models.CharField(max_length=100) 
    model_year = models.IntegerField() 
    vehicle_type = models.CharField(max_length=100) 
    slug = models.SlugField(max_length=100, unique=True) 
    vehicle_model = models.CharField(max_length=100) 
    website = models.URLField(max_length=100, blank=True) 
    email = models.EmailField(max_length=100, blank=True) 
    notes = models.TextField(blank=True, default='') 
    def __str__(self): 
     x = self.maker + ' ' + self.vehicle_model 
     return x 

そして、ここではURLです(一般的なクラスベースのビューのために)gcbvと呼ばれるアプリで私のモデルである:

from django.contrib import admin 
from django.urls import path, include 
from django.conf.urls import url 
from . import views 
from django.urls import reverse 
#from django.views.generic.base import TemplateView 

app_name = 'gcbv' 

urlpatterns = [ 
    path('sub1/', views.SubView.as_view(), name='sub1'), 
    path('vehicle_list/', views.VehicleListView.as_view(), 
     name = 'vehicle_list'), 
    path('vehicle/<str:slug>/', 
     views.VehicleDetailView.as_view(), 
     name='vehicle_detail'), 
    path('vehicle/create', views.VehicleCreateView.as_view(), 
     name='vehicle_create'),  
    path('', views.IndexTemplateView.as_view(), name='index'), 
] 

そしてここでは、関連する図であり、

class VehicleCreateView(CreateView):  
    model = Vehicle 
    fields = ['maker', 'model_year', 'vehicle_type', 'slug', 
     'vehicle_model', 'website', 'email', 'notes'] 
    labels = {'maker':'Maker', 'model_year':'Year', 
     'vehicle_type':'Type', 'vehicle_model':'Model', 
     'website':'Website', 'email':'Email', 'notes':'Notes'} 

テンプレートは次のとおりです。

{% extends "core/base.html" %} 
{% block body_block %} 
    <h1>Vehicle Create for GCBV</h1> 
    <form action="POST" action=""> 
     {% csrf_token %} 
     {{ form.as_p }} 
     <button name="submit" class="btn btn-primary">Submit</button> 
    </form> 
    <h1>End Vehicle Create for GCBV</h1> 
{% endblock %} 

データがデータベースに保存されていないように見えますが、管理ページで直接同じデータを手作業で追加すると、すべて正常に動作します。 VehicleDetailViewが関連するテンプレートを見つけて情報を表示したことを示す別のスクリーンショットを添付しました。

ご協力いただければ幸いです。

NB:パスの代わりに関数ビューと正規表現を使用するとすべてうまくいきました。


フォーム rendered form template

後一覧 after clicking submit

提出 after clicking submit

詳細 after clicking submit

OK、これは私たちseptuagenariansは "上級瞬間"と呼ばれるものです。私はこのコードを2日間注視しており、明白なことは見ませんでした。

method = "POST"!

ませ

述べたように、アクションが=テンプレートの4行目の "POST"

多く、多くの感謝

+0

"ポスト" と同じでなければなりません以下の答えでは、 'method = 'post''のときに' action'という属性を呼び出しています –

答えて

1

は、方法は

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

{% block body_block %} 

<h1>Vehicle Create for GCBV</h1> 

<form method="POST" action=""> 
{% csrf_token %} 
{{ form.as_p }} 
<button name="submit" class="btn btn-primary">Submit</button> 
</form> 
<h1>End Vehicle Create for GCBV</h1> 
{% endblock %} 
関連する問題