Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何允许用户编辑他们的配置文件?_Django - Fatal编程技术网

Django 如何允许用户编辑他们的配置文件?

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

我是Django框架的新手,尝试通过制作一个用户可以发布的网站来学习它

我想允许用户在注册后编辑他们的个人资料,但我在网上找到的教程并不直接和复杂。 就像这两个:

以下是view.py:

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内容%}
如果有人能帮我,我会很感激的
谢谢您

添加一些代码以显示您迄今为止所做的尝试。我已经添加了代码您遇到的错误是什么?您正在处理基于函数的视图,这在开始时很难理解,我建议您处理基于类的视图。我做了一个竞争项目你可以在这里看到我的项目,