我不知道如何将值从url传递到UpdateView。然后我需要将该值传递给我的html页面。
urls.py
中的对应行,
url(r'^poi/edit/(?P<pk>\d+)', POIFormUpdateView.as_view(), name='POIform-edit')
views.py
class POIFormUpdateView(UpdateView):
model = PointOfInterest
fields = ['name', 'vip', 'category', 'place', 'latitude', 'longitude', 'picture', 'website', 'description', 'phone', 'email']
template_name_suffix = '_update_form'
def get(self, request, *args, **kwargs):
print 'On POI get method'
print kwargs
super(POIFormUpdateView, self).get(request, *args, **kwargs)
在这里,我尝试重写get
方法,kwargs
打印出预期的字典,但我不知道如何将该字典传递给我的update_form.html
文件。
update_form.html
,
<form role="form" method="POST" action="/poi/edit/{{ pk }}" class="post-form form-horizontal">{% csrf_token %}
<!-- customizing form -->
{{ form|crispy }}
<!-- End of customization -->
<button type="submit" class="save btn btn-default btn-primary center-block">Save</button>
</form>
我也尝试过从名称中获取网址,
<form role="form" method="POST" action="{% url 'POIform-edit' %}"
但这也行不通。
答案 0 :(得分:1)
将参数对象ID添加到url:
<form role="form" method="POST" action="/poi/edit/{{ object.pk }}/" class="post-form form-horizontal">
ClassBasedView passes model_name as context_object,它应该成为:
<form role="form" method="POST" action="/poi/edit/{{ pointofinterest.pk }}/" class="post-form form-horizontal">
答案 1 :(得分:0)
我使用<input type='hidden' name='***' value="/poi/edit/{{ pk }}" />
将此值传递给请求。然后在def get():
中,您可以使用类似myurl=request.POST.get('***')