Django -将detail的值传递给模板

j2qf4p5b  于 2022-12-05  发布在  Go
关注(0)|答案(1)|浏览(156)

有一个视图用于详细说明:

def get_viewNum(request, numNom):
    md = Nomenclature.objects.get(pk=numNom)
    all_changes_for_md = Changes.objects.filter(numNomenclature_id=md.numNom)

    return render(request,'Sklad/viewNum.html',context = {'nomenclature':md, 'changes':all_changes_for_md})

还有一个视图用于显示表:

class TableView(ListView):
    model = Nomenclature
    context_object_name = 'nm'    
    template_name = 'Sklad/viewTable.html'

在模板中,我输出一个表,我希望当点击按钮时,会转换到所需术语的详细信息。我的模板

///
{% for item in nm %}
<tr>
    <td>{{item.numNom}}</td>
    <td>{{item.nameNom}}</td>
    <td>{{item.quantity}}</td>
    <td>{{item.numPolk}}</td>
    <td><a href="{% url 'prosmotr'  %}">Просмотр</a></td>
    <td><button>Печать</button></td>
</tr>
{% endfor %}
///

如何将所需的numNom传递给url detail字符串?如果使用以下代码:

...
 <td><a href="{% url 'prosmotr' item.numNom  %}">Просмотр</a></td>
...

返回错误:
找不到参数为'(',)'的'prosmotr'在/table/ Reverse的NoReverseMatch。已尝试1个模式:['新闻/(?P[^/]+)/\Z']
我的网址.py

urlpatterns = [
    path('', home, name='rashod'),
    path('add_changes/',CreateChanges.as_view(), name = 'add_changes'),
    path('save', save),
    path('inventriz/', inventriz, name='invent'),
    path('inventriz/inventr', inventr, name='add_invent'),
    path('news/<str:numNom>/',get_viewNum, name='prosmotr'),
    path('table/', TableView.as_view(), name = 'viewTable')
]
3bygqnnd

3bygqnnd1#

由于您的numNomCharField,因此视图应为:

def get_viewNum(request, numNom):
    md = get_object_or_404(Nomenclature, numMom=numNom)
    all_changes_for_md = get_list_or_404(Changes,numNomenclature=md)

    #....

而在html网址中:

...
 <td><a href="{% url 'prosmotr' item.numNom  %}">Просмотр</a></td>
...
``

相关问题