2016-02-04 74 views
1

我不知道如何將值從URL傳遞到UpdateView。然後我需要將該值傳遞給我的html頁面。在urls.py如何將url中捕獲的值傳遞給html頁面?

相應的線路,

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> 

我已經從名稱獲取URL等也試過,

<form role="form" method="POST" action="{% url 'POIform-edit' %}" 

但是,這也將無法正常工作。

回答

1

添加參數對象ID的網址:

<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"> 
+0

第一個工作的地方,第二個失敗。你知道爲什麼引用url名稱失敗? –

+0

引用URL失敗的原因相同,只是傳遞對象pk作爲參數,如下所示:'{%url'POIform-edit'object.pk%}' – v1k45

0

我使用<input type='hidden' name='***' value="/poi/edit/{{ pk }}" />將此值傳遞給請求。然後在def get():你可以得到這個使用類似myurl=request.POST.get('***')

+0

'{{PK}}' –

+0

既然你想要的網址,然後把一些代表的URL,例如,myURL ='***',然後使用隱藏的輸入傳遞到請求在您的視圖 –

相關問題