0

I am creating members for an application in Mezzanine and I need to add them via the admin and extend User model. How can I auto-create a user from Member model

I am using mezzanine and Django and I have tried using Abstractuser but mezzanine throws an error "field username not found" and omits a few permissions. My option is to extend User model using OnetoOneField.

Models.py

class Member(models.Model):
    """
    Members models
    """
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    name = models.CharField(max_length=255, blank=True, null=True)
    sector = models.ForeignKey(Sector, on_delete=models.CASCADE)
    membership = models.ForeignKey(
        MembershipType, on_delete=models.CASCADE, null=True)
    description = RichTextField(blank=True, null=True)
    email = models.EmailField(blank=True, null=True)
    website = models.URLField(blank=True, null=True)
    telephone = models.CharField(max_length=255, blank=True, null=True)
    fax = models.CharField(max_length=150, blank=True, null=True)
    postaladdress = models.CharField(max_length=100, blank=True, null=True)
    physicaladdress = models.CharField(max_length=255, blank=True, null=True)
    logo = models.ImageField( null=True, blank=True)
    profile = RichTextField(blank=True, null=True)
    is_active = models.BooleanField(default=True, verbose_name="Active Member")


def create_user(instance, created, raw, **kwargs):
    # Ignore fixtures and saves for existing courses.
    if not created or raw:
        return

    if not instance.user_id:
        member = Member.objects.all()
        user, _ = User.objects.get_or_create(username=member.email, password1="default",password2="default")
        instance.user = user

    instance.save()

models.signals.post_save.connect(create_user, sender=Member, dispatch_uid='create_user')

I only want to autogenerate username, passsword1, password2 of User model. I want the username to be equal to email from Member model, password1 and password2 should be default

0 Answers0