如何将用户数据库中的数据导入表单以更新它
How to bring data from DB of a User into form to update it
我正在学习 Django 并尝试按照 djangoGirls
教程制作一个简单的 CRUD。但不幸的是,他们没有展示如何更新数据。
我已经 Inserting
,Reading/listing
我怎么可能 Delete
和 Update
?
我列出了带有 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)
这将从模型中获取数据并将其传递给模板。
现在您可以执行更新了。
希望这有帮助:)
我正在学习 Django 并尝试按照 djangoGirls
教程制作一个简单的 CRUD。但不幸的是,他们没有展示如何更新数据。
我已经 Inserting
,Reading/listing
我怎么可能 Delete
和 Update
?
我列出了带有 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)
这将从模型中获取数据并将其传递给模板。 现在您可以执行更新了。 希望这有帮助:)