【发布时间】:2021-08-10 04:01:35
【问题描述】:
向开发者致敬。我有一个应用程序,在索引中我使用表字段之间的 ForeignKey 调用一些查询,使用 User 作为参数。这些视图适用于没有 ForeignKey 的其他表。但是当我调用请求数据库的 CRUD(删除、更新、创建)函数时,它会返回一个错误:
Request Method: GET
Request URL: http://127.0.0.1:8000/delete/13/
Django Version: 3.2
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'projeto' with no arguments not found. 1 pattern(s) tried: ['delete/(?P<pk>[0-9]+)/projeto/$']
Exception Location: C:\webcq\venv\lib\site-packages\django\urls\resolvers.py, line 694, in _reverse_with_prefix
Python Executable: C:\webcq\venv\Scripts\python.exe
Python Version: 3.8.6
Python Path:
['C:\\webcq',
'C:\\webcq\\venv',
'C:\\webcq\\venv\\lib\\site-packages']
Server time: Thu, 20 May 2021 21:03:07 +0000
url.py 项目
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('imagem.urls', namespace='home')),
path('view/<int:pk>/', include('imagem.urls', namespace='view')),
path('edit/<int:pk>/', include('imagem.urls', namespace='edit')),
path('update/<int:pk>/', include('imagem.urls', namespace='update')),
path('delete/<int:pk>/', include('imagem.urls', namespace='delete')),
]
urls.py 应用程序
from django.urls import path
from . import views
app_name = 'imagem'
urlpatterns = [
path('', views.home, name='home'),
path('projeto/', views.projeto, name='projeto'),
path('form/', views.form, name='form'),
path('create/', views.create, name='create'),
path('view/<int:pk>/', views.view, name='view'),
path('edit/<int:pk>/', views.edit, name='edit'),
path('update/<int:pk>/', views.update, name='update'),
path('delete/<int:pk>/', views.delete, name='delete'),
]
views.py 应用程序
视图工作,但不重定向到视图名称并返回上述错误。
def edit(request, pk):
data = {}
data['db'] = Projeto.objects.get(pk=pk)
data['form'] = ProjetoForm(instance=data['db'])
return render(request, 'imagem/form.html', data)
def update(request, pk):
data = {}
data['db'] = Projeto.objects.get(pk=pk)
form = ProjetoForm(request.POST or None, instance=data['db'])
if form.is_valid():
form.save()
return redirect('imagem:projeto')
def delete(request, pk):
db = Projeto.objects.get(pk=pk)
db.delete()
return redirect('imagem:projeto')
form.html
{% for dbs in db %}
<td>
<th>{{dbs.id}}</th>
<td>{{dbs.nome}}</td>
<td>{{dbs.tipo_img}}</td>
<td>
<a href="/view/{{dbs.id}}/" class="btn btn-dark">Visualizar</a>
<a href="/edit/{{dbs.id}}/" class="btn btn-primary">Editar</a>
<a href="/delete/{{dbs.id}}/" class="btn btn-danger btnDel">Deletar</a>
</td>
</tr>
{% endfor %}
models.py 应用程序
class Projeto(models.Model):
tipo_img = models.ForeignKey(TipoImg, on_delete=models.CASCADE)
nome = models.CharField(max_length=200)
autor = models.ForeignKey(User, on_delete=models.CASCADE, default='1')
def __str__(self):
return self.nome
【问题讨论】:
标签: python django user-interface view foreign-keys