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