Рубрики
Без рубрики

Мне нужна помощь в этой проблеме

Привет ребята! Я делаю страницу обновления профиля на своем сайте Django. Ниже приведена проблема, которая … помечена Django, помощью, Python.

Привет ребята! Я делаю страницу обновления профиля на своем сайте Django. Ниже приведена проблема, которую я сталкиваюсь:

from django.shortcuts import render, redirect
from django.contrib.auth.models import User, auth
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.contrib.auth.forms import UserCreationForm
from .models import Profileforusers
from .forms import UserUpdateForm, PicUpdateForm, BioUpdateForm

# Create your views here.

@login_required
def userprofile(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = PicUpdateForm(request.POST, request.FILES, instance=request.user.profileforusers)
        bio_form = BioUpdateForm(request.POST, instance=request.user.profileforusers)
        if u_form.is_valid():
            u_form.save()
            messages.success(request, "Profile Is Updated Successfully!")
            return redirect("profilesettings")
        elif p_form.is_valid():
            p_form.save()
            messages.success(request, "Profile Picture Is Updated Successfully!")
            return redirect("profilesettings")
        elif bio_form.is_valid():
            bio_form.save()
            messages.success(request, "Bio Updated Successfully!")
            return redirect("profilesettings")

    else:
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = PicUpdateForm(request.POST, instance=request.user.profileforusers)
        bio_form = BioUpdateForm(request.POST, instance=request.user.profileforusers)
        context = {
            'u_form': u_form,
            'p_form': p_form,
            'bio_form': bio_form
        }
    return render(request, 'siteaccount/usersettings.html', context)

Это мои сигналы.пи

from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profileforusers

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profileforusers.objects.create(user=instance)


@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
    instance.profileforusers.save()

Это моя модель

from django.db import models
from django.contrib.auth.models import User
from PIL import Image
# Create your models here.

class Profileforusers(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    user_bio = models.CharField(max_length=150, default='Write About Yourself')
    user_image = models.ImageField(upload_to='thephotos/userphotos', default='defaultpicture.jpg')

    def __str__(self):
        return f"Profile Of {self.user.username}"

    def save(self, *args, **kwargs):
        super(Profileforusers, self).save(*args, **kwargs)
        usr_img = Image.open(self.user_image.path)
        if usr_img.height>300 or usr_img.width>300:
            output_img = (300, 300)
            usr_img.thumbnail(output_img)
            usr_img.save(self.user_image.path)

Это моя форма .py

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Profileforusers

class UserUpdateForm(forms.ModelForm):
    email = forms.EmailField()
    class Meta:
        model = User
        fields = ['first_name']
        widgets = {
            'first_name' : forms.TextInput(attrs={'class': 'form-control'})
        }

class PicUpdateForm(forms.ModelForm):
    class Meta:
        model = Profileforusers
        fields = ['user_image']

class BioUpdateForm(forms.ModelForm):
    class Meta:
        model = Profileforusers
        fields = ['user_bio']

И это пользователи .html





    
    
    Profile Update Page
    
        

Date Joined: {{user.date_joined|date:"F d, Y"}}

Username: {{user.username}}

Name: {{user.first_name}}

Bio: {{user.profileforusers.user_bio}}

{% csrf_token %} {{p_form.as_p}}
{% csrf_token %} {{u_form.as_p}}
{% csrf_token %} {{bio_form.as_p}}
{% for message in messages %}
{{message}}
{% endfor %}

Ваш ответ будет очень признателен благодаря вашему времени

Оригинал: “https://dev.to/krishan111/i-need-help-in-this-problem-1a2c”