Django 如何允许用户编辑他们的配置文件?
我是Django框架的新手,尝试通过制作一个用户可以发布的网站来学习它 我想允许用户在注册后编辑他们的个人资料,但我在网上找到的教程并不直接和复杂。 就像这两个: 以下是view.py:Django 如何允许用户编辑他们的配置文件?,django,Django,我是Django框架的新手,尝试通过制作一个用户可以发布的网站来学习它 我想允许用户在注册后编辑他们的个人资料,但我在网上找到的教程并不直接和复杂。 就像这两个: 以下是view.py: from django.shortcuts import render,redirect from .forms import RegisterForm, UserUpdateForm, ProfileUpdateForm from django.contrib import messages from dj
from django.shortcuts import render,redirect
from .forms import RegisterForm, UserUpdateForm, ProfileUpdateForm
from django.contrib import messages
from django.contrib.auth.decorators import login_required
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(response, f'Your account has been created!')
return redirect("blog-home")
else:
form = RegisterForm()
return render(response,"register/register.html",{"form":form})
@login_required
def profile(request):
if request.method == 'POST':
user_form = UserUpdateForm(request.POST, instance=request.user)
profile_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
messages.success(request, f'Your account has been updated!')
return redirect('profile')
else:
user_form = UserUpdateForm(instance=request.user)
profile_form = ProfileUpdateForm(instance=request.user.profile)
contex={'u_form':user_form, 'p_form':profile_form}
return render(request, 'users/profile.html', context)
对于profile.html:
{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<div class="media">
<img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
<div class="media-body">
<h2 class="account-heading">{{ user.username }}</h2>
<p class="text-secondary">{{ user.email }}</p>
</div>
</div>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Profile Info</legend>
{{ user_form|crispy }}
{{ profile_form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Update</button>
</div>
</form>
</div>
{% endblock content %}
{%extends“blog/base.html”%}
{%load crispy_forms_tags%}
{%block content%}
{{user.username}
{{user.email}
{%csrf_令牌%}
配置文件信息
{{user_form | crispy}}
{{profile_form|crispy}}
更新
{%endblock内容%}
如果有人能帮我,我会很感激的
谢谢您添加一些代码以显示您迄今为止所做的尝试。我已经添加了代码您遇到的错误是什么?您正在处理基于函数的视图,这在开始时很难理解,我建议您处理基于类的视图。我做了一个竞争项目你可以在这里看到我的项目,