Skip to main content
 首页 » 编程设计

python之Django 更新 View 不工作

2024年08月21日31Free-Thinker

我正在尝试使用 django 的 UpdateView 但由于某些原因它不起作用。

(URL.py) 
from django.conf.urls import url 
from . import views 
app_name='profiles' 
urlpatterns = [ 
url(r'^$', views.IndexView.as_view(),name='index'), 
url(r'^(?P<pk>[0-9]+)$',views.DetailView.as_view(),name='detail'), 
url(r'^task/add/$',views.TaskCreate.as_view(),name='task-add'), 
url(r'^task/(?P<pk>[0-9]+)$',views.TaskUpdate.as_view(), name='task-update'), 
url(r'^task/(?P<pk>[0-9]+)/delete/$',views.TaskDelete.as_view(), name='task-delete'),] 

下面是我的 Html 文件,我试图在其中添加一个“编辑”链接,该链接将重定向到 UpdateView。

(Details.PY this already has the second url mapped) 
{% extends 'profiles/base.html' %} 
{% block body %} 
<H3>The total efforts are {{datamain.efforts}} {{datamain.status}} hours.</H3> 
 
<a href="{% url 'profiles:task-update' %}">Edit</a> 
   {% endblock %} 

下面是Views.py

class IndexView(generic.ListView): 
template_name = 'profiles/index.html' 
def get_queryset(self): 
    return Datamain.objects.all() 
 
 
class DetailView(generic.DetailView): 
    model = Datamain 
    template_name = 'profiles/details.html' 
 
class TaskCreate(CreateView): 
    model=Datamain 
    fields=['main_task','date_time','efforts','status'] 
 
class TaskUpdate(UpdateView): 
    model=Datamain 
    fields=['main_task','date_time','efforts','status'] 
 
class TaskDelete(DeleteView): 
    model=Datamain 
    success_url = reverse_lazy('profiles:index') 
    fields=['main_task','date_time','efforts','status'] 

当我运行它并转到页面时,它显示错误“没有反向匹配”

请您参考如下方法:

你忘记传递 url 参数 pk 试试这个:

<a href="{% url 'profiles:task-update' pk=datamain.id %}">Edit</a>