【发布时间】:2018-12-09 10:48:55
【问题描述】:
我是 Django 新手。我创建了一个简单的 createview,然后同样尝试了 updateview,但我得到了 NoReverseMatch 错误。我尝试了许多在线建议的方法,但它们似乎仍然不起作用。 这是我收到的错误截图NoReverseMatchError
以下是我的文件
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include
from mapp import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$',views.AboutView.as_view(),name='about'),
url(r'^blogs/$',views.BlogsView.as_view(),name='blog'),
url(r'^project/$',views.ProjectListView.as_view(),name='project_list'),
url(r'^project/(?P<pk>\d+)/$',views.ProjectDetailView.as_view(),name='project_detail'),
url(r'^project/create/$',views.ProjectCreateView.as_view(),name='project_create'),
url(r'^project/(?P<pk>\d+)/$',views.ProjectUpdateView.as_view(),name='update'),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Views.py
from django.shortcuts import render,redirect
from django.views.generic import TemplateView,ListView,DetailView,CreateView,UpdateView
from mapp.models import Project
from mapp.forms import ProjectCreateForm,ProjectUpdateForm
# Create your views here.
class AboutView(TemplateView):
template_name='about.html'
class BlogsView(TemplateView):
template_name='blogs.html'
class ProjectListView(ListView):
model=Project
class ProjectDetailView(DetailView):
model=Project
class ProjectCreateView(CreateView):
model=Project
form_class=ProjectCreateForm
redirect_field_name='mapp/project_detail.html'
class ProjectUpdateView(UpdateView):
model=Project
form_class=ProjectUpdateForm
redirect_field_name='mapp/project_detail.html'
Project_detail.html
{% extends 'base.html'%}
{% block content %}
<h1>Project Details</h1>
<div class="container">
<h2>{{project.pname}}</h2>
<img src="{{project.pimage.url}}"></img>
<h2>{{project.ptech}}</h2>
<h2>{{project.pdetails}}</h2>
</div>
<div class="container">
<p><a href="{%url 'update' pk=self.pk %}">Update</a>
</div>
{% endblock %}
Forms.py
from django import forms
from mapp.models import Project
class ProjectCreateForm(forms.ModelForm):
class Meta:
model=Project
fields=('pname','pimage','ptech','pdetails')
class ProjectUpdateForm(forms.ModelForm):
class Meta:
model=Project
fields=('pname','pimage','ptech','pdetails')
Project_form.html
{% extends 'base.html' %}
{% block content %}
<form class="project-form" method="POST" enctype="multipart/form-data">
<div class="jumbotron">
{% csrf_token %}
{{form.as_p}}
<button type="submit" class="save btn btn-default">Save</button>
</div>
</form>
{% endblock %}
【问题讨论】:
标签: python django django-templates django-class-based-views