如何在django中将主键传递给视图?
我正在尝试实现一个基于类的视图,它应该创建一个更新表单来更新我的模型表单,但我不知道如何将pk从my base.html传递到我的视图: viewvs.py:如何在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.
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 »</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'),
]