Create a user with email which has been processed from the previous page with UserCreationForm Django
I am trying to create a user with email as username and the email is first screened, i.e., the email is not registered then create a user. How can I pass or set the email in forms.py as it is already processed in the previous page?
Models.py
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
class CUserManager(models.Manager):
def _create_user(self, email, password, **extra_fields):
now = timezone.now();
if not email:
raise ValueError(_('Email is required'))
user = self.model(
email = email,
date_joined = now, **extra_fields
)
user.set_password(password)
user.save(using = self._db)
return account
def create_user(self, email, password=None, **extra_fields):
return self._create_user(email, password, **extra_fields)
def get_by_natural_key(self, email):
return self.get(email=email)
def create_superuser(self, email, password, **extra_fields):
return self._create_user(email, password,**extra_fields)
class CUser(AbstractBaseUser):
email = models.EmailField(_('email address'), unique=True)
first_name = models.CharField(_('first name'), max_length=255)
last_name = models.CharField(_('last name'), max_length=255)
date_joined = models.DateTimeField(_('date created'), auto_now_add=True)
is_active = models.BooleanField(default=True)
objects = CUserManager()
USERNAME_FIELD = 'email'
...
Forms.py
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
in HTML
<form action="" method="post" role="form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
The email comes from session['email'] which is saved in the previous page.
How can I pass this session['email'] to forms.py?
python django email user-registration
add a comment |
I am trying to create a user with email as username and the email is first screened, i.e., the email is not registered then create a user. How can I pass or set the email in forms.py as it is already processed in the previous page?
Models.py
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
class CUserManager(models.Manager):
def _create_user(self, email, password, **extra_fields):
now = timezone.now();
if not email:
raise ValueError(_('Email is required'))
user = self.model(
email = email,
date_joined = now, **extra_fields
)
user.set_password(password)
user.save(using = self._db)
return account
def create_user(self, email, password=None, **extra_fields):
return self._create_user(email, password, **extra_fields)
def get_by_natural_key(self, email):
return self.get(email=email)
def create_superuser(self, email, password, **extra_fields):
return self._create_user(email, password,**extra_fields)
class CUser(AbstractBaseUser):
email = models.EmailField(_('email address'), unique=True)
first_name = models.CharField(_('first name'), max_length=255)
last_name = models.CharField(_('last name'), max_length=255)
date_joined = models.DateTimeField(_('date created'), auto_now_add=True)
is_active = models.BooleanField(default=True)
objects = CUserManager()
USERNAME_FIELD = 'email'
...
Forms.py
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
in HTML
<form action="" method="post" role="form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
The email comes from session['email'] which is saved in the previous page.
How can I pass this session['email'] to forms.py?
python django email user-registration
add a comment |
I am trying to create a user with email as username and the email is first screened, i.e., the email is not registered then create a user. How can I pass or set the email in forms.py as it is already processed in the previous page?
Models.py
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
class CUserManager(models.Manager):
def _create_user(self, email, password, **extra_fields):
now = timezone.now();
if not email:
raise ValueError(_('Email is required'))
user = self.model(
email = email,
date_joined = now, **extra_fields
)
user.set_password(password)
user.save(using = self._db)
return account
def create_user(self, email, password=None, **extra_fields):
return self._create_user(email, password, **extra_fields)
def get_by_natural_key(self, email):
return self.get(email=email)
def create_superuser(self, email, password, **extra_fields):
return self._create_user(email, password,**extra_fields)
class CUser(AbstractBaseUser):
email = models.EmailField(_('email address'), unique=True)
first_name = models.CharField(_('first name'), max_length=255)
last_name = models.CharField(_('last name'), max_length=255)
date_joined = models.DateTimeField(_('date created'), auto_now_add=True)
is_active = models.BooleanField(default=True)
objects = CUserManager()
USERNAME_FIELD = 'email'
...
Forms.py
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
in HTML
<form action="" method="post" role="form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
The email comes from session['email'] which is saved in the previous page.
How can I pass this session['email'] to forms.py?
python django email user-registration
I am trying to create a user with email as username and the email is first screened, i.e., the email is not registered then create a user. How can I pass or set the email in forms.py as it is already processed in the previous page?
Models.py
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
class CUserManager(models.Manager):
def _create_user(self, email, password, **extra_fields):
now = timezone.now();
if not email:
raise ValueError(_('Email is required'))
user = self.model(
email = email,
date_joined = now, **extra_fields
)
user.set_password(password)
user.save(using = self._db)
return account
def create_user(self, email, password=None, **extra_fields):
return self._create_user(email, password, **extra_fields)
def get_by_natural_key(self, email):
return self.get(email=email)
def create_superuser(self, email, password, **extra_fields):
return self._create_user(email, password,**extra_fields)
class CUser(AbstractBaseUser):
email = models.EmailField(_('email address'), unique=True)
first_name = models.CharField(_('first name'), max_length=255)
last_name = models.CharField(_('last name'), max_length=255)
date_joined = models.DateTimeField(_('date created'), auto_now_add=True)
is_active = models.BooleanField(default=True)
objects = CUserManager()
USERNAME_FIELD = 'email'
...
Forms.py
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
in HTML
<form action="" method="post" role="form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
The email comes from session['email'] which is saved in the previous page.
How can I pass this session['email'] to forms.py?
python django email user-registration
python django email user-registration
asked Nov 22 '18 at 5:06
Gene9yGene9y
2131214
2131214
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can try like this:
# Form
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
def save(self, **kwargs):
email = kwargs.pop('email')
user = super(RegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.email = email
user.save()
return user
# View
# your form codes...
if form.is_valid():
form.save(email=request.session.get('email'))
# rest of the codes
What I am doing here is that, first I have override that save method to catch email value from keyword arguments. Then I am passing the email value to the ModelForm
's save method. Hope it helps!!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424205%2fcreate-a-user-with-email-which-has-been-processed-from-the-previous-page-with-us%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can try like this:
# Form
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
def save(self, **kwargs):
email = kwargs.pop('email')
user = super(RegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.email = email
user.save()
return user
# View
# your form codes...
if form.is_valid():
form.save(email=request.session.get('email'))
# rest of the codes
What I am doing here is that, first I have override that save method to catch email value from keyword arguments. Then I am passing the email value to the ModelForm
's save method. Hope it helps!!
add a comment |
You can try like this:
# Form
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
def save(self, **kwargs):
email = kwargs.pop('email')
user = super(RegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.email = email
user.save()
return user
# View
# your form codes...
if form.is_valid():
form.save(email=request.session.get('email'))
# rest of the codes
What I am doing here is that, first I have override that save method to catch email value from keyword arguments. Then I am passing the email value to the ModelForm
's save method. Hope it helps!!
add a comment |
You can try like this:
# Form
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
def save(self, **kwargs):
email = kwargs.pop('email')
user = super(RegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.email = email
user.save()
return user
# View
# your form codes...
if form.is_valid():
form.save(email=request.session.get('email'))
# rest of the codes
What I am doing here is that, first I have override that save method to catch email value from keyword arguments. Then I am passing the email value to the ModelForm
's save method. Hope it helps!!
You can try like this:
# Form
class RegistrationForm(UserCreationForm):
class Meta:
model = CUser
fields = ('first_name', 'last_name', 'password1', 'password2')
def save(self, **kwargs):
email = kwargs.pop('email')
user = super(RegistrationForm, self).save(commit=False)
user.set_password(self.cleaned_data['password1'])
user.email = email
user.save()
return user
# View
# your form codes...
if form.is_valid():
form.save(email=request.session.get('email'))
# rest of the codes
What I am doing here is that, first I have override that save method to catch email value from keyword arguments. Then I am passing the email value to the ModelForm
's save method. Hope it helps!!
answered Nov 22 '18 at 6:48
ruddraruddra
12.5k32648
12.5k32648
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53424205%2fcreate-a-user-with-email-which-has-been-processed-from-the-previous-page-with-us%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown