如何在django中将主键传递给视图?

如何在django中将主键传递给视图?,django,primary-key,django-generic-views,Django,Primary Key,Django Generic Views,我正在尝试实现一个基于类的视图,它应该创建一个更新表单来更新我的模型表单,但我不知道如何将pk从my base.html传递到我的视图: viewvs.py: from artdb.models import * class UpdateForm(UpdateView): print('updateform') model=Date fields=['activity'] template_name='updateForm.html' updateForm.

我正在尝试实现一个基于类的视图,它应该创建一个更新表单来更新我的模型表单,但我不知道如何将pk从my base.html传递到我的视图:

viewvs.py:

from artdb.models import *

class UpdateForm(UpdateView):

    print('updateform')
    model=Date
    fields=['activity']
    template_name='updateForm.html'
updateForm.html:

{% extends "artdb/base.html" %}

{% block upd %}
    <form action="" method="post">
    {% csrf_token %}
    {{ form.as_p }}
     <input type="submit" value="Update">
     </form>
{% endblock upd %}
{%extensed“artdb/base.html”%}
{%block upd%}
{%csrf_令牌%}
{{form.as_p}}
{%endblock upd%}
base.html:

<p><a class="btn btn-secondary"  href="{% url 'artdb:updateform' %}" role="button">update form &raquo;</a></p
{% block upd %}
{% endblock upd %}

我想你现在可能已经得到了,但如果没有,请在app url.py文件中这样尝试:

urlpatterns = [
path('updateform/<int:pk>',views.UpdateForm.as_view(),name='updateform'),
]
urlpatterns=[
路径('updateform/',views.updateform.as_view(),name='updateform'),
]

不确定您所指的视图,我只使用一个视图(如上所示)。我应该把这个链接放在updateForm.html中吗?在updateForm视图中,你根本不需要这个链接。您已经有一个提交按钮。您可以使用URL标记设置表单的操作,例如
。好的,我尝试了object.pk,但随后出现了“NoReverseMatch at/”错误。这有点让人困惑,您只为
//updateform/
显示了一个URL模式。您没有显示
/
的URL模式或视图。好吧,我想我误解了updateview。我想做的是创建一个对象,然后保存它,即使用createview。updateview仅更新现有对象。我的错,是这样的。键是elf.request.GET.GET()函数。
urlpatterns = [
path('updateform/<int:pk>',views.UpdateForm.as_view(),name='updateform'),
]