2017-10-17 30 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) 

这会从模型中获取数据,并把它传递给模板。 现在您可以执行更新。 希望这有助于:)

相关问题