【发布时间】:2021-04-15 22:16:01
【问题描述】:
我对 Django 很陌生,我正在做一个项目,我正在尝试创建一个页面来修改用户数据(代码如下)。我想要做的是允许用户更改一个或多个字段,不一定同时更改所有字段,然后更新用户实例,我尝试在每个字段上使用多个条件,所以我不会有稍后在数据库中的空字段,但没有任何反应。
这是相应的视图:
@login_required
def profile(request, id_user):
try:
user = Account.objects.get(pk=id_user)
if request.method == 'POST':
form= request.POST
if form.get('first_name'):
user = Account(first_name=form.get('first_name'))
user.save()
if form.get('last_name'):
user = Account(last_name=form.get('last_name'))
user.save()
if form.get('email'):
user = Account(email=form.get('email'))
user.save()
if form.get('username'):
user = Account(username=form.get('username'))
user.save()
if form.get('adress'):
user = Account(adress=form.get('adress'))
user.save()
if form.get('phone'):
user = Account(phone=form.get('phone'))
user.save()
except Account.DoesNotExist:
user = None
raise Http404("User does not exist")
return render(request, "profile.html")
这是来自模板的 sn-p:
<form action="#" method="POST">
{% csrf_token %}
<h6>Informations du compte</h6>
<div>
<div class="row">
<div class="col-lg-6">
<div >
<label for="username">Nom
d'utilisateur</label>
<input type="text" id="username"
class=""
placeholder="{{user.username}}">
</div>
</div>
<div class="col-lg-6">
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email"
class=""
placeholder="{{user.email}}">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<div >
<label for="first_name">Prénom</label>
<input type="text" id="first-name"
class=""
placeholder="{{user.first_name}}">
</div>
</div>
<div class="col-lg-6">
<div >
<label for="last_name">Nom</label>
<input type="text" id="last-name"
class=""
placeholder="{{user.last_name}}">
</div>
</div>
</div>
</div>
<hr class="my-4">
<h6>Informations de contact</h6>
<div>
<div class="row">
<div class="col-md-12">
<div >
<label for="adress">Adresse</label>
<input id="address" class=""
placeholder="{{user.adress}}" type="text">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<div >
<label for="phone">Télephone</label>
<input type="text" id="phone"
class=""
placeholder="{{user.phone}}">
</div>
</div>
</div>
</div>
</div>
<div class="card-header bg-white border-0">
<div class="float-sm-right">
<div>
<button type="submit" value="appliquer"
class="btn btn-sm btn-primary">Appliquer</button>
</div>
</div>
</div>
</form>
【问题讨论】:
标签: django forms django-views django-templates