代码之家  ›  专栏  ›  技术社区  ›  PlayHardGoPro

如何将用户数据库中的数据转换为表单以进行更新

  •  0
  • PlayHardGoPro  · 技术社区  · 7 年前

    我正在学习django,并试图制作一个简单的积垢,遵循 djangoGirls 辅导的但不幸的是,他们没有展示如何更新数据。

    我已经 Inserting Reading/listing 我该怎么办 Delete Update

    我列出了带有编辑链接的用户:

    {% 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 url。
    我如何传递所选/单击用户的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'),
    

    如何从数据库中获取数据并将其放入表单中,以便执行 使现代化 ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Himanshu Nachane    7 年前

    您不需要将数据发送到其他链接。您可以在同一URL上更新详细信息。

    将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)
    

    这将从模型中获取数据并将其传递给模板。 现在您可以执行更新。 希望这有帮助:)