Сигналы вроде не работают, честно много пробовал - PullRequest
1 голос
/ 01 ноября 2019

создание аутентификации модели пользователя для веб-сайта, использование сигналов для автоматического создания, но, кажется, не срабатывает, создается путанный пользователь, но не профиль, может кто-то помочь мне на этот раз

models.py

class InterestChoice(models.Model):
    INTEREST_CHOICES = (
        ('A', 'traveling'),
        ('B', 'exercise'),
    )
    interest = models.CharField(max_length=1, choices=INTEREST_CHOICES, unique=True)

    def __str__(self):
        return self.get_interest_display()


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    dob = models.DateField()
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')
    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)
    interests = models.ManyToManyField(InterestChoice)

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

    def save(self):
        super().save()

signal.py

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


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


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

вот код apps.py apps.py

from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'users'

    def ready(self):
        import users.signals
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...