Django视图有一个意想不到的关键字参数

Nea*_*ara 8 django python-2.7

我有以下网址模式:

urlpatterns = pattern('',
    ...
    url(r'edit-offer/(?P<id>\d+)/$', login_required(edit_offer), name='edit_offer'),
)
Run Code Online (Sandbox Code Playgroud)

以及相应的edit_offer视图:

def edit_offer(request, id):
  # do stuff here
Run Code Online (Sandbox Code Playgroud)

优惠页面上的链接可导致编辑优惠视图:

<a class="btn" href="{% url edit_offer offer.id %}">Edit</a>
Run Code Online (Sandbox Code Playgroud)

单击该按钮会引发TypeError:

edit_offer() got an unexpected keyword argument 'offer_id'
Run Code Online (Sandbox Code Playgroud)

有什么想法发生了什么?我不明白这里有什么问题.我有其他类似模式的视图,它们都可以正常工作.

Cal*_*eng 11

试试这个:

你的urls.py: -

urlpatterns = pattern('whatever_your_app.views',
    ...
    url(r'edit-offer/(?P<id>\d+)/$', 'edit_offer', name='edit_offer'),
)
Run Code Online (Sandbox Code Playgroud)

你的views.py: -

from django.contrib.auth.decorators import login_required

...

@login_required
def edit_offer(request, id):
    # do stuff here
Run Code Online (Sandbox Code Playgroud)

在你的template: -

{% url 'edit_offer' offer.id %}
Run Code Online (Sandbox Code Playgroud)