Django регистрация | Как убрать выбор профиля для нового пользователя?

Рейтинг: 0Ответов: 1Опубликовано: 26.03.2023

Всем привет! Столкнулся с такой проблемой. После регистрации пользователя и дальнейшей его авторизации у него ограниченный доступ к загрузке изображения, вообще не может ничего загрузить. Но после добавления профиля через админку у пользователя появляются права на загрузку любых изображений. Как убрать "выбор профиля" для новых зарегистрированных пользователей? Чтобы самому вручную этим не заниматься.

введите сюда описание изображения

введите сюда описание изображения

models.py

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone



class Profile(models.Model):
  user = models.OneToOneField(User, on_delete=models.CASCADE)
  bio = models.CharField(default='Привет, всем!', max_length=100)
  image = models.ImageField(default='def_user.png')

  def str(self):
    return f'Профиль {self.user.username}'

  def following(self):
    user_ids = Relationship.objects.filter(from_user=self.user)\
                    .values_list('to_user_id', flat=True)
    return User.objects.filter(id__in=user_ids)


  def followers(self):
    user_ids = Relationship.objects.filter(to_user=self.user)\
                    .values_list('from_user_id', flat=True)
    return User.objects.filter(id__in=user_ids)



class Post(models.Model):
  timestamp = models.DateTimeField(default=timezone.now)
  content = models.TextField()
  user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts')


  class Meta:
    ordering = ['-timestamp']

  def str(self):
    return self.content


class Relationship(models.Model):
  from_user = models.ForeignKey(User, related_name='relationships', on_delete=models.CASCADE)
  to_user = models.ForeignKey(User, related_name='related_to', on_delete=models.CASCADE)

  def str(self):
    return f'{self.from_user} to {self.to_user}'

Ответы

▲ 0Принят
from django.db.models.signals import post_save
from django.dispatch import receiver

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