Force verification of email in django-allauth results in “RelatedObjectDoesNotExist: EmailAddress has no...
I am trying to forcefully verify emails of new users signing into my Django application. I am using django-allauth 0.37.1 for this.
You can do this by overriding the method below which belongs to the django-allauth Provider class. An example is given in their source code:
def extract_email_addresses(self, data):
"""
For example:
[EmailAddress(email='john@example.com',
verified=True,
primary=True)]
"""
return
This is what I've overwritten it with:
def extract_email_addresses(self, data):
return [EmailAddress(email=data['email'].strip().lower(), verified=True, primary=True)]
By setting verified=True
you can auto-verify the email. The problem is that Django won't let me. It throws: RelatedObjectDoesNotExist: EmailAddress has no user.
I think this has to do with a database restriction of the foreignkey to the user. Which is required to make the email. The only problem is that the user doesn't exist yet. For me to create the user I need the email first. Manually lifting this restriction on the database level doesn't seem like a proper solution.
My settings for django-allauth are:
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_LOGOUT_ON_GET = True
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_UNIQUE_EMAIL=False
Does someone know what I am doing wrong here?
django-allauth
add a comment |
I am trying to forcefully verify emails of new users signing into my Django application. I am using django-allauth 0.37.1 for this.
You can do this by overriding the method below which belongs to the django-allauth Provider class. An example is given in their source code:
def extract_email_addresses(self, data):
"""
For example:
[EmailAddress(email='john@example.com',
verified=True,
primary=True)]
"""
return
This is what I've overwritten it with:
def extract_email_addresses(self, data):
return [EmailAddress(email=data['email'].strip().lower(), verified=True, primary=True)]
By setting verified=True
you can auto-verify the email. The problem is that Django won't let me. It throws: RelatedObjectDoesNotExist: EmailAddress has no user.
I think this has to do with a database restriction of the foreignkey to the user. Which is required to make the email. The only problem is that the user doesn't exist yet. For me to create the user I need the email first. Manually lifting this restriction on the database level doesn't seem like a proper solution.
My settings for django-allauth are:
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_LOGOUT_ON_GET = True
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_UNIQUE_EMAIL=False
Does someone know what I am doing wrong here?
django-allauth
add a comment |
I am trying to forcefully verify emails of new users signing into my Django application. I am using django-allauth 0.37.1 for this.
You can do this by overriding the method below which belongs to the django-allauth Provider class. An example is given in their source code:
def extract_email_addresses(self, data):
"""
For example:
[EmailAddress(email='john@example.com',
verified=True,
primary=True)]
"""
return
This is what I've overwritten it with:
def extract_email_addresses(self, data):
return [EmailAddress(email=data['email'].strip().lower(), verified=True, primary=True)]
By setting verified=True
you can auto-verify the email. The problem is that Django won't let me. It throws: RelatedObjectDoesNotExist: EmailAddress has no user.
I think this has to do with a database restriction of the foreignkey to the user. Which is required to make the email. The only problem is that the user doesn't exist yet. For me to create the user I need the email first. Manually lifting this restriction on the database level doesn't seem like a proper solution.
My settings for django-allauth are:
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_LOGOUT_ON_GET = True
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_UNIQUE_EMAIL=False
Does someone know what I am doing wrong here?
django-allauth
I am trying to forcefully verify emails of new users signing into my Django application. I am using django-allauth 0.37.1 for this.
You can do this by overriding the method below which belongs to the django-allauth Provider class. An example is given in their source code:
def extract_email_addresses(self, data):
"""
For example:
[EmailAddress(email='john@example.com',
verified=True,
primary=True)]
"""
return
This is what I've overwritten it with:
def extract_email_addresses(self, data):
return [EmailAddress(email=data['email'].strip().lower(), verified=True, primary=True)]
By setting verified=True
you can auto-verify the email. The problem is that Django won't let me. It throws: RelatedObjectDoesNotExist: EmailAddress has no user.
I think this has to do with a database restriction of the foreignkey to the user. Which is required to make the email. The only problem is that the user doesn't exist yet. For me to create the user I need the email first. Manually lifting this restriction on the database level doesn't seem like a proper solution.
My settings for django-allauth are:
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_LOGOUT_ON_GET = True
ACCOUNT_AUTHENTICATION_METHOD = 'username'
ACCOUNT_USER_MODEL_USERNAME_FIELD = 'username'
ACCOUNT_UNIQUE_EMAIL=False
Does someone know what I am doing wrong here?
django-allauth
django-allauth
asked Nov 22 '18 at 17:02
smoquetsmoquet
11
11
add a comment |
add a comment |
0
active
oldest
votes
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%2f53435536%2fforce-verification-of-email-in-django-allauth-results-in-relatedobjectdoesnotex%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f53435536%2fforce-verification-of-email-in-django-allauth-results-in-relatedobjectdoesnotex%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