Insert data in a table after a user is created from djando admin - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Web Scraping & Web Development (https://python-forum.io/forum-13.html) +--- Thread: Insert data in a table after a user is created from djando admin (/thread-4376.html) |
Insert data in a table after a user is created from djando admin - prithvi - Aug-11-2017 I am a fresher in django. I am using django 1.10 with allauth app which takes care of frontend registration, sending user confirmation email,validation, login with email etc. So it all works in the frontend. In the backend I managed to change the user creation form by adding an extra field email. The allauth app inserts 3 rows in 3 tables when a user is created in the frontend. 1. auth_user 2. account_emailaddress 3. account_emailconfirmation When adding a user from admin it creates a row in auth_user and general_userprofile(extending django user model) table. I would like to insert a row in account_emailaddress table whenever a user is created via admin. Fields in account_emailaddress are-- id verified primary user_id models.py -- from __future__ import unicode_literals from django.db import models from django.contrib.auth.models import User from django.utils.translation import ugettext as _ from django.db.models.signals import post_save from django.dispatch import receiver from ciasroot.util import HashedPk from phonenumber_field.modelfields import PhoneNumberField import math, decimal, datetime, os User._meta.get_field('email').blank = False User._meta.get_field('email')._unique = True class EmailAddress(models.Model): verified = models.BooleanField(verbose_name=_('verified'), default=True) primary = models.BooleanField(verbose_name=_('primary'), default=True) class UserProfile(models.Model, HashedPk): user = models.OneToOneField(User, unique=True, related_name ='profile') job_title = models.CharField(max_length=128, blank=True, null=False, default="") website = models.URLField(max_length=255, blank=True, null=True) organisation = models.CharField(max_length=50, blank=True, null=True, default="") phone_number = PhoneNumberField( blank=True, null=True) @receiver(post_save, sender=User) def create_profile(sender, instance, created, **kwargs): if created: UserProfile.objects.create(user=instance) def __str__(self): return self.user.get_full_name() def save(self, *args, **kwargs): super(UserProfile, self).save(*args, **kwargs)How can I fetch userid and email under class EmailAddress and save it to the table. Any help is highly appreciated. |