我得到了错误。Django中的一个应用程序中位于/delete_mat/11/的NoReverseMatch
大家好。我在现有的Django项目中创建了第二个应用程序。应用程序中的url.py路由工作正常,但视图edit_-mat、update_-mat和delete_-mat(尽管执行了该操作但仍访问数据库)不会重新加载索引页。我无法访问数据库的视图工作得很好。 不知道还能做什么。你能帮忙吗 错误: view.py应用程序 URL.py应用程序我得到了错误。Django中的一个应用程序中位于/delete_mat/11/的NoReverseMatch,django,view,django-urls,Django,View,Django Urls,大家好。我在现有的Django项目中创建了第二个应用程序。应用程序中的url.py路由工作正常,但视图edit_-mat、update_-mat和delete_-mat(尽管执行了该操作但仍访问数据库)不会重新加载索引页。我无法访问数据库的视图工作得很好。 不知道还能做什么。你能帮忙吗 错误: view.py应用程序 URL.py应用程序 来自django.contrib导入管理 从django.url导入路径 从…起导入视图 应用程序名称=‘材料’ URL模式=[ #确定路径('materia
来自django.contrib导入管理
从django.url导入路径
从…起导入视图
应用程序名称=‘材料’
URL模式=[
#确定路径('material/',views.material,name='material'),
#确定路径('form\u mat/',views.form\u mat,name='form\u mat'),
路径('create_-mat/',views.create_-mat,name='create_-mat'),
路径('view\u mat/',views.view\u mat,name='view\u mat'),
路径('edit_-mat/',views.edit_-mat,name='edit_-mat'),
路径('update_-mat/',views.update_-mat,name='update_-mat'),
路径('delete_-mat/',views.delete_-mat,name='delete_-mat'),
]
视图可以工作,但不会重定向到视图名称并返回错误:
NoReverseMatch at/edit_mat/11/
NoReverseMatch at/update_mat/11/
NoReverseMatch at/delete_mat/11/
URL.py项目
from django.urls import include, path
from imagem.views import home, form, create, view, projeto, edit, update, delete
from materiais.views import material, form_mat, create_mat, view_mat, edit_mat, update_mat, delete_mat
urlpatterns = [
... urls project... ok
#App Materiais
path('', include('materiais.urls', namespace='material')),
path('form_mat/', include('materiais.urls', namespace='form_mat')),
path('create_mat/', include('materiais.urls', namespace='create_mat')),
path('view_mat/<int:pk>/', include('materiais.urls', namespace='view_mat')),
path('edit_mat/<int:pk>/', include('materiais.urls', namespace='edit_mat')),
path('update_mat/<int:pk>/', include('materiais.urls', namespace='update_mat')),
path('delete_mat/<int:pk>/', include('materiais.urls', namespace='delete_mat')),
]
从django.url导入包括,路径
从imagem.views导入主视图、表单、创建、查看、项目、编辑、更新、删除
从materialis.views导入材料、形成材料、创建材料、查看材料、编辑材料、更新材料、删除材料
URL模式=[
…URL项目…好的
#应用材料
路径(“”,include('materialis.url',namespace='material')),
路径('form_-mat/',include('materialis.url',namespace='form_-mat')),
路径('create_-mat/',include('materialis.url',namespace='create_-mat')),
路径('view\u mat/',include('materialis.url',namespace='view\u mat')),
路径('edit_-mat/',include('materialis.url',namespace='edit_-mat')),
路径('update\u mat/',include('materialis.url',namespace='update\u mat')),
路径('delete_-mat/',include('materialis.url',namespace='delete_-mat')),
]
form.html
{db%中的dbs的%s}
{{dbs.id}
{{dbs.spec_name}
{{dbs.codigo}}
{{dbs.spect_material}}
{{dbs.diametro1}}
{{dbs.diametro2}}
{{dbs.peso}
{%endfor%}
您需要在视图中使用重定向('material:material')
。我相信我会帮你的。让我知道它是否有效。是的,它有效。这件物品申报错误。非常感谢。当然可以是的,成功了。这件物品申报错误。非常感谢。当然可以
from django.shortcuts import render, redirect
from materiais.models import EspecComponentes, Componente, Codigo, EspecMaterial
from materiais.forms import EspecComponentesForm
# Create your views here.
...
def create_mat(request):
form_mat = EspecComponentesForm(request.POST or None)
if form_mat.is_valid():
form_mat.save()
return redirect('material')
def view_mat(request, pk):
data = {}
data['db'] = EspecComponentes.objects.get(pk=pk)
return render(request, 'materiais/view.html', data)
def edit_mat(request, pk):
data = {}
data['db'] = EspecComponentes.objects.get(pk=pk)
data['form_mat'] = EspecComponentesForm(instance=data['db'])
return render(request, 'materiais/form.html', data)
def update_mat(request, pk):
data = {}
data['db'] = EspecComponentes.objects.get(pk=pk)
form_mat = EspecComponentesForm(request.POST or None, instance=data['db'])
if form_mat.is_valid():
form_mat.save()
return redirect('material')
def delete_mat(request, pk):
db = EspecComponentes.objects.get(pk=pk)
db.delete()
return redirect('material')
from django.contrib import admin
from django.urls import path
from . import views
app_name = 'materiais'
urlpatterns = [
#ok path('material/', views.material, name='material'),
#ok path('form_mat/', views.form_mat, name='form_mat'),
path('create_mat/', views.create_mat, name='create_mat'),
path('view_mat/<int:pk>/', views.view_mat, name='view_mat'),
path('edit_mat/<int:pk>/', views.edit_mat, name='edit_mat'),
path('update_mat/<int:pk>/', views.update_mat, name='update_mat'),
path('delete_mat/<int:pk>/', views.delete_mat, name='delete_mat'),
]
from django.urls import include, path
from imagem.views import home, form, create, view, projeto, edit, update, delete
from materiais.views import material, form_mat, create_mat, view_mat, edit_mat, update_mat, delete_mat
urlpatterns = [
... urls project... ok
#App Materiais
path('', include('materiais.urls', namespace='material')),
path('form_mat/', include('materiais.urls', namespace='form_mat')),
path('create_mat/', include('materiais.urls', namespace='create_mat')),
path('view_mat/<int:pk>/', include('materiais.urls', namespace='view_mat')),
path('edit_mat/<int:pk>/', include('materiais.urls', namespace='edit_mat')),
path('update_mat/<int:pk>/', include('materiais.urls', namespace='update_mat')),
path('delete_mat/<int:pk>/', include('materiais.urls', namespace='delete_mat')),
]
<tbody>
{% for dbs in db %}
<td>
<th>{{dbs.id}}</th>
<td>{{dbs.espec_name}}</td>
<td>{{dbs.codigo}}</td>
<td>{{dbs.espec_material}}</td>
<td>{{dbs.diametro1}}</td>
<td>{{dbs.diametro2}}</td>
<td>{{dbs.peso}}</td>
<td>
<a href="/view_mat/{{dbs.id}}/" class="btn btn-dark">Visualizar</a>
<a href="/edit_mat/{{dbs.id}}/" class="btn btn-primary">Editar</a>
<a href="/delete_mat/{{dbs.id}}/" class="btn btn-danger btnDel">Deletar</a>
</td>
</tr>
{% endfor %}
</tbody>