如何将用户数据库中的数据导入表单以更新它

How to bring data from DB of a User into form to update it

我正在学习 Django 并尝试按照 djangoGirls 教程制作一个简单的 CRUD。但不幸的是,他们没有展示如何更新数据。

我已经 InsertingReading/listing 我怎么可能 DeleteUpdate

我列出了带有 link 的用户进行编辑:

{% 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。
我如何传递 selected/clicked 用户的 ID/data 以便我可以提取他的数据并将其放入表单中?

表单创建:

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

您不需要将数据发送给另一个link。您可以在 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)

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