找不到错误页(404)请求方法:GET in Djang

2024-05-23 22:34:37 发布

您现在位置:Python中文网/ 问答频道 /正文

下午好: 当我试图更新“usario”时,我看到了Django的这个错误:

Page not found (404)
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/usuarios/modificar/
Using the URLconf defined in COMBOOK.urls, Django tried these URL patterns in this order:
^ ^$ [name='login']
^ ^cerrar/$ [name='logout']
^ ^registrarse/$ [name='registrarse']
^autor/
^libros/
^usuarios/ ^registrar/$ [name='registrar_usuario']
^usuarios/ ^reportar/$ [name='reportar_usuario']
^usuarios/ ^modificar/(?P<email>\d+)/$ [name='modificar-usuario']
^tipos_usuario/
^admin/
^media/(?P<path>.*)$
The current URL, usuarios/modificar/, didn't match any of these.

这个文件是模型.py在

^{pr2}$

这个是网址.py在

from django.conf.urls import patterns, include, url
from .views import RegistrarUsuario, ReportarUsuario, ModificarUsuario


urlpatterns = patterns('',

    url(r'^registrar/$' , RegistrarUsuario.as_view() , name="registrar_usuario"),
    url(r'^reportar/$' , ReportarUsuario.as_view() , name="reportar_usuario"),

    url(r'^modificar/(?P<email>\d+)/$', ModificarUsuario.as_view(),name='modificar-usuario'),

)

这个是视图.py在

from django.views.generic import CreateView,TemplateView,ListView, UpdateView

from braces.views import LoginRequiredMixin  # handles authentication
from .models import Usuario
from apps.usuarios.models import Usuario
from apps.tipos_usuario.models import Tipo_Usuario
from django.core.urlresolvers import reverse_lazy
from django.shortcuts import render_to_response
from django.template import RequestContext

from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger


class RegistrarUsuario(CreateView):
    template_name = 'usuarios/registrarUsuario.html'
    model = Usuario
    success_url = reverse_lazy('reportar_usuario')


class ReportarUsuario(ListView):
    template_name = 'usuarios/reportarUsuarios.html'
    model = Usuario
    context_object_name = 'usuarios'
    paginate_by = 2


class ModificarUsuario(LoginRequiredMixin, UpdateView):
    template_name = 'usuarios/modificarUsuario.html'
    model = Usuario
    success_url = reverse_lazy('modificar-usuario')

    def get_object(self):
        return Usuario.objects.get(email=self.request.GET.get('email'))

这个是modificarUsuario.html在

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Modificar Usuario</title>
    <link rel="stylesheet" href="{{STATIC_URL}}css/style.css">
</head>
<body>
    <h1>Modificar Usuario</h1>
    <ul>
        {% for usuario in usuarios %}
            <li class="contact">{{ usuario }}
                (<a href="{% url "modificar-usuario" pk=email %}">Editar</a>)
            </li>
        {% endfor %}
    </ul>

</body>
</html>

我有一个文件名为“基本.html“我尝试调用html文件的位置”modificarUsuario.html“在class=nav中的选项内:

<li><a href="/usuarios/modificar/">Modificar Usuario</a></li>

有人能告诉我怎么解决这个问题吗?在


Tags: djangonamefromimporturlemailhtmlclass
1条回答
网友
1楼 · 发布于 2024-05-23 22:34:37

正如错误所说,没有只与/usuarios/modificar/匹配的URL。您的修改视图需要第三个部分,即整数(出于某种原因,您将其称为email)。在

你已经在内部正确定义了链接modificarUsuario.html,其中使用{% url %}标记来构造它。但是在基本模板中,您刚刚链接到/usarios/modificar/,而这个模板并不存在;您应该使用相同的结构来链接到特定用户的修改页面。在

(实际上,这段代码还有很多其他错误,但对于初学者来说就足够了。)

相关问题 更多 >