2017-10-17 31 views
0

我正在學習django並試圖按照djangoGirls教程做出一個簡單的CRUD。但不幸的是,他們不顯示如何更新數據。如何將用戶數據庫中的數據轉化爲表單以更新它

我已經InsertingReading/listing我怎麼可能DeleteUpdate

我列出的用戶提供了鏈接編輯:

{% extends 'bloodDonation/master.html' %} 

{% block content %} 
     <h1 class="center">LIST DONATORS<h1> 
     <ul> 
     {% for donator in donators %} 
      <div class="row"> 
        <div class="container"> 
         <div class="col s12 blue-grey lighten-5 border_lighten"> 
          <div class="col s12 m12 padding_normal"> 
            {{ donator.name }} 
            <div id="icon" class="right"> 
              <a href="{% url 'edit_donator' %}" class="tooltipped" data-position="right" data-delay="50" data-tooltip="Editar Dados""> <i class="material-icons">edit</i></a> 
            </div> 
          </div> 
         </div> 
        </div> 
      </div> 
     {% endfor %} 
     </ul> 

{% endblock %} 

正如你所看到的,我有一個a標籤指向edit_donator網址。
我該如何傳遞選定/點擊的用戶的ID /數據,以便我可以將他的數據放入表單中?

表單創建:

class EditDonatorForm(forms.ModelForm): 
     class Meta: 
      model = Donator 
      fields = [ 'name', 'age', 'email', 'phone', 'bloodType', 'observation' ] 

試圖通過ID:

url(r'^donator/(?P<pk>\d+)/update/$', views.edit_donator, name='edit_donator'), 

我如何可以從數據庫中獲得數據,並已經將其內部形狀,所以我可以執行Update

回答

1

您不需要將數據發送到另一個鏈接。您可以更新相同網址上的詳細信息。

你的HTML改成這樣:

{% extends 'bloodDonation/master.html' %} 

{% block content %} 
    <h1 class="center">LIST DONATORS<h1> 
    <ul> 
    {% for donator in donators %} 
     <div class="row"> 
       <div class="container"> 
        <div class="col s12 blue-grey lighten-5 border_lighten"> 
         <div class="col s12 m12 padding_normal"> 
           {{ donator.name }} 
           <div id="icon" class="right"> 
             <a href="yoururl/?edit-donator={{ donator.id }}" class="tooltipped" data-position="right" data-delay="50" data-tooltip="Editar Dados""> <i class="material-icons">edit</i></a> 
           </div> 
         </div> 
        </div> 
       </div> 
     </div> 
    {% endfor %} 
    </ul> 

{% endblock %} 

在你看來寫,

if 'edit-donator' in request.GET: 
    edit_data = YourModel.objects.get(id=request.GET['edit-donator']) 
    form = EditDonatorForm(instance=edit_data) 

這會從模型中獲取數據,並把它傳遞給模板。 現在您可以執行更新。 希望這有助於:)

相關問題