首页 > 解决方案 > Django:无法解析余数:来自 '=' 的 '='

问题描述

我正在关注本教程https://tutorial.djangogirls.org/en/extend_your_application/ 但是在尝试使用路径方法将 pk 从 html 传递到 url 时出现 Templatesyntax 错误。

根据我所读到的有关此错误的信息,这与大括号和引号有关,但在这种情况下,我无法找出语法的确切问题。

这是 listview.html

{% for vehicle_list_load in vehicle_list_loads %}
          <tr>
            <td>{{vehicle_list_load.vehicle_num}}</td>
            <td>{{vehicle_list_load.Driver_name}}</td>
            <td>{{vehicle_list_load.BusinessUnit}}</td>
            <td>{{vehicle_list_load.CheckinTime}}</td>
            <td>{{vehicle_list_load.Type}}</td>
            <td>
              <a href= "{% url 'vehicle_movement:checkoutview' pk = vehicle_list_load.pk %}" class = "glyphicon glyphicon-pencil" aria-hidden ="true" > Edit</a>
            </td>
          </tr>
          {% endfor %}

这是 vehicle_movements urls.py

from django.urls import path
from vehicle_movement import views
app_name = 'vehicle_movement'
urlpatterns = [
path('checkoutview/<int:pk>/',views.checkout, name = 'checkoutview'),
]

这是主要的 urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(('vehicle_movement.urls','vehicle_movement'),namespace = 'vehicle_movement')),
]

这是视图

def listView(request):
    vehicle_list_loads = list(Checkin.objects.all().filter(Type ='Loading'))
    vehicle_list_unloads = list(Checkin.objects.all().filter(Type ='Unloading'))
    current_time = datetime.utcnow().replace(tzinfo=utc)
    diff = current_time
    return render(request,'vehicle_movement/listView.html',
    {'vehicle_list_loads':vehicle_list_loads,'vehicle_list_unloads':vehicle_list_unloads,'diff':diff})

单击编辑此视图需要打开

def checkout(request,pk):
    post = get_object_or_404(Checkin, pk= pk)
    return render(request,'vehicle_movement/checkout.html',{'post':post})

标签: djangodjango-urls

解决方案


您的 urls.py 似乎设置正常,我认为它不适合您的原因是因为您在参数周围有额外的空格。在模板中传递参数的正确方法是这样的:

{% url 'vehicle_movement:checkoutview' pk=vehicle_list_load.pk %}


推荐阅读