【问题标题】:Reverse for 'x' with arguments '(1,)' not found. 1 pattern(s) tried: ['grupe/(?P<grupa_id>[0-9]+)/(?P<elev_id>[0-9]+)/$']未找到带有参数“(1,)”的“x”的反向操作。尝试了 1 种模式:['grupe/(?P<grupa_id>[0-9]+)/(?P<elev_id>[0-9]+)/$']
【发布时间】:2017-11-05 14:21:32
【问题描述】:

我正在尝试构建一个 django 应用程序,它可以让我访问一些包含 student(elev) 对象的组。我无法显示 Elev 对象。

Elevi urls.py

from django.conf.urls import url
from . import views

app_name = 'elevi'

urlpatterns = [
    #/
    url(r'^$', views.index, name = 'index'),
    #/Grupe/id
    url(r'^grupe/(?P<grupa_id>[0-9]+)/$', views.connect, name="connect"),
    #/Grupe/id/elevi_id
    url(r'^grupe/(?P<grupa_id>[0-9]+)/(?P<elev_id>[0-9]+)/$', views.elev_individual, name="elev_individual")
    ]

Elevi views.py

from django.shortcuts import render,get_object_or_404
from .models import Grupa,Elev

def index(request):
    toate_grupele = Grupa.objects.all()
    context = {"toate_grupele" : toate_grupele}
    return render(request,'Elevi/test.html',context)

def connect(request,grupa_id):
    grupa = get_object_or_404(Grupa, pk = grupa_id)
    return render(request,'Elevi/connect.html',{'grupa':grupa})

def elev_individual(request,elev_id):
    elev = get_object_or_404(Elev, pk = elev_id)
    return render(request,'Elevi/elev_individual.html',{'elev':elev})

test.html

{% if toate_grupele %}
<ul>
    {% for grupa in toate_grupele %}
         <li><a href ="{% url 'elevi:connect' grupa.id %}">{{ grupa.nume_grupa }}</a></li>
    {% endfor %}
</ul>
{% else %}
    <p>Nu sunt grupe salvate</p>
{% endif %}

connect.html

<h1>{{ grupa.nume_grupa }}</h1>
<h3>Lista Elevi:</h3>

<ul>
    {% for elev in grupa.elev_set.all %}
        <li><a href="{% url 'elevi:elev_individual' elev.id %}">{{ elev.nume_elev }} {{ elev.prenume_elev }}</a></li>
    {% endfor %}
</ul>

elev_individual.html

<p>{{ elev.nume_elev }} {{ elev.prenume_elev }}</p>

【问题讨论】:

    标签: python django


    【解决方案1】:

    url 模式与视图参数不匹配

    查看

    def index(request): #url pattern don't need any argument
    def connect(request,grupa_id): #url pattern needs one argument
    def elev_individual(request,elev_id): #requires one argument
    

    网址

    url(r'^$', views.index, name = 'index'), # good
    url(r'^grupe/(?P<grupa_id>[0-9]+)/$', views.connect, name="connect") #good
    

    如果您查看错误消息,elev_individual 需要 def elev_individual(request,elev_id): 视图方法中的两个参数。要解决此问题,请删除第二个参数,以便

    ['grupe/(?P<grupa_id>[0-9]+)/(?P<elev_id>[0-9]+)/$']
    

    变成

    ['grupe/(?P<elev_id>[0-9]+)/$']
    

    或添加另一个参数 elev_id 作为视图的第二个参数,使其变为

    def elev_individual(request,grupa_id, elev_id): 
    

    并根据需要过滤

    【讨论】:

    猜你喜欢
    • 2020-08-16
    • 2023-03-28
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2023-03-18
    • 2022-08-05
    • 2020-10-21
    相关资源
    最近更新 更多