如何从url中的模板传递pk以在视图中使用" Django"?

时间:2017-11-20 17:28:30

标签: python html django html5

我收到此错误: " ValueError at / 5 对于带有基数为10的int(),文字无效:'' "

我认为我传递一个字符串并尝试将其用作int。如何正确传递我想要的int?

这是我的代码, 在html模板中:

    <form method="GET" action="{% url 'register' activity.pk %}">
             {% csrf_token %}
            <button 
            type="submit" 
            class="btn btn-primary" 
            id="Register">Register
            </button>
    </form>

在urls.py中:

 url(r'^(?P<pk>)', authentication_views.registerAttende, name='register'),

在views.py中:

def registerAttende(request,pk):
    act = Activity.objects.get(pk=pk) //This is the line that is causing the error
    act.save()
    attend = act.attendee.create(student=request.user.id)
    return render(request, 'dashboard.html')

我知道变量pk的值是:u&#39;&#39; https://i.stack.imgur.com/uSw24.png

我该如何解决这个问题?我做错了什么?

1 个答案:

答案 0 :(得分:2)

你的正则表达式是错误的 - 你还没有提供捕获的模式。它应该是:

r'^(?P<pk>\d+)'