【问题标题】:NoReverseMatch at Reverse for 'url-name' with arguments '('',)' not foundNoReverseMatch at Reverse for 'url-name' with arguments '('',)' not found
【发布时间】:2020-08-16 21:32:53
【问题描述】:

每个人。问题来了:

当我尝试输入 localhost/condominio/generate 时出现“NoReverseMatch”消息

NoReverseMatch 在 /condominio/generate 未找到带有参数“(”,)”的“生成详细信息”的反向。尝试了 1 种模式:['condominio/generate/(?P[^/]+)$']

这是我的代码部分:

urls.py:

path('generate', views.generate, name='generate-section'),

path('generate/<str:loc_id>', views.generate_details, name='generate-details'),

views.py:

def generate(request):

  loc = Locatario.objects.order_by('unidade_id')
  return render(request, 'calccondominio/generate.html', context)```

def generate_details(request, loc_id):

  loc = get_object_or_404(Locatario, pk=loc_id)
  ctr = loc.contrato_set.get(pk=loc_id)
  return render(request, 'calccondominio/generate_details.html', {'loc':loc, 'ctr':ctr})

生成.html:

{% extends 'blog/base.html' %}

{% block content %}

  

    <div class="container">
        <div class="card w-100">
          <div class="card-body">
            <h5 class="card-title">Unidades atualmente ocupadas:</h5>
            {% for l in loc %}
              <a href="{% url 'generate-details' locid.id %}">{{l.unidade}}</a>
            {%endfor%}
      
          </div> 
        </div> 
    </div> 

  

{% endblock content %}

感谢您的帮助。

【问题讨论】:

    标签: django


    【解决方案1】:

    您的模板中Loctario 的对象名称是l,而不是locid&lt;/s&gt;,因此您应该将其重写为:

    {% for l in loc %}
        <a href="{% url 'generate-details' l.id %}">{{l.unidade}}</a>
    {% endfor %}

    您也可以使用.pk 来获取主键,如果您以后更改id的名称可能会更好:

    {% for l in loc %}
        <a href="{% url 'generate-details' l.pk %}">{{l.unidade}}</a>
    {% endfor %}

    【讨论】:

    • 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多