2015-09-16 73 views
0

我得到錯誤使用Django的正則表達式是這樣的:Django的正則表達式錯誤NoReverseMatch

Reverse for 'fleet_member_edit' with arguments '()' and keyword arguments '{u'id_fleet_id': ''}' not found. 1 pattern(s) tried: ['dashboard/fleet_member_edit/(?P<id_fleet_id>[0-9]+)/$']

我想用 「id_fleet_id」 調用數據。這是我的示例數據:

id id_fleet_id id_unit 
1 2323  A1 
2 2323  A2 
3 2343  A8 

urls.py

url(r'^dashboard/fleet_member_edit/(?P<id_fleet_id>[0-9]+)/$', 'apps.fleet.views.fleet_member_edit', name='fleet_member_edit'), 

views.py

def fleet_member_edit(request, id_fleet_id): 
    post = get_object_or_404(Member, id_fleet_id=id_fleet_id) 
    if request.method == "POST": 
     id_fleet = request.POST['id_fleet'] 
     units = map(int, request.POST['id_unit'].split(), instance=post) 

     for id_unit in units: 
      member = Member() 
      member.id_fleet_id = id_fleet 
      member.id_unit_id = id_unit 
      member.save() 
     return redirect('apps.setup.views.vehicle_group_view') 
    else: 
     form = FleetMember(instance=post) 
    context_dict = {'form':form, 'post':post} 
    return render(request,'fleet_member_edit.html', context_dict, context_instance= RequestContext(request)) 

模板

<td><a href="{% url 'fleet_member_edit' id_fleet_id=post.id_fleet_id %}" type="button" class="btn btn-primary">EDIT</a></td> 

你可以幫我解決這個問題呢?

+0

您的模板不知道的是,你需要將它傳遞的上下文(包含形式字典)什麼post.id_flee_id – cdvv7788

回答

1

您不在模板上下文中發送post對象。

您需要發送post對象的背景下,作爲@cdvv7788也有提及。由於您沒有在上下文中發送post對象,因此該模板無法正確生成URL。

你需要做的是這樣的:

def my_view(request): 
    ... 
    context_dict = {'post': post, ..} # pass the 'post' object 
    # here 'some_template.html' is the template containing this url 
    return render(request, 'some_template.html', context_dict) 
+0

我已經修改,但它同樣錯誤。怎麼樣? – User0511

+0

請發佈您嘗試的代碼。 –

+0

我已經在上面發佈了代碼 – User0511