Я назначил CharField с именем «description» в качестве поля для встроенной пользовательской модели, и когда я меняю профиль, появляется CharacterField с именем Description, но когда я заполняю любой контент и нажимаю «Готово», Описание профиля остается пустым.
Вот как выглядит часть моего кода в моем файле users / forms.py:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Profile
class UserUpdateForm(forms.ModelForm):
email = forms.EmailField()
description = forms.CharField(required=False, max_length=100)
class Meta:
model = User
fields = ['username', 'email', 'description']
Вот какая часть моих пользователей / Файл views.py выглядит следующим образом:
from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm
from django.contrib.auth.decorators import login_required
def Profile(request):
return render(request, 'users/profile.html')
@login_required
def ProfileUpdate(request):
if request.method == "POST":
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f"Your account has been updated")
return redirect("/profile")
else:
u_form = UserUpdateForm(instance=request.user)
p_form = ProfileUpdateForm(instance=request.user.profile)
context = {
'u_form': u_form,
'p_form': p_form,
}
return render(request, 'users/profileupdate.html', context)
Мой файл urls.py выглядит следующим образом:
from django.urls import include, path
from users import views as user_views
urlpatterns = [
...,
path('profile/', user_views.Profile, name="profile"),
path('profile/update', user_views.ProfileUpdate, name="profile-update"),
]
А мой файл "profile. html" выглядит следующим образом:
{% extends 'webapp/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>
<h5 style="color: rgb(63, 63, 209)" class="mr-4">Username*</h5>
<h6>{{ user.username }}</h6>
<br>
<h5 style="color: rgb(63, 63, 209)" class="mr-4">Email*</h5>
<h6>{{ user.email }}</h6>
<br>
<h5 style="color: rgb(63, 63, 209)" class="mr-4">Description</h5>
<h6>{{ user.description }}</h6>
<br>
<h5 style="color: rgb(63, 63, 209)">Image*</h5>
<img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
</fieldset>
{% if request.user.email == user.email %}
<div class="form-group">
<a class="btn btn-outline-primary" href="{% url 'profile-update' %}">Edit Profile</a>
</div>
{% endif %}
</form>
</div>
{% endblock content %}
Пожалуйста, помогите, возможно, это просто глупая ошибка, но я ее не вижу