【问题标题】:Django view got an unexpected keyword argumentDjango 视图有一个意外的关键字参数
【发布时间】:2012-11-06 12:35:43
【问题描述】:

我有以下网址模式:

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

以及相应的edit_offer视图:

def edit_offer(request, id):
  # do stuff here

要约页面上的链接可以编辑要约视图:

<a class="btn" href="{% url edit_offer offer.id %}">Edit</a>

单击按钮会引发 TypeError:

edit_offer() got an unexpected keyword argument 'offer_id'

有什么想法吗?我看不出这里有什么问题。我有其他类似模式的视图,它们都可以正常工作。

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    试试这个:

    你的urls.py:-

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

    你的views.py:-

    from django.contrib.auth.decorators import login_required
    
    ...
    
    @login_required
    def edit_offer(request, id):
        # do stuff here
    

    在你的template:-

    {% url 'edit_offer' offer.id %}
    

    【讨论】:

    • 谢谢。按照您的建议,当我输入我的报价的完整路径时,我发现我有另一个同名的视图(虚拟),并且该报价确实在其 kwargs 中没有 offer_id,删除它解决了我的问题。我犯了一个愚蠢的错误。
    猜你喜欢
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多