Решение для меня было использовать git difftool.
Я написал этот инструмент https://github.com/chestozo/dmp на основе https: / /code.google.com/p/google-diff-match-patch/.
Иногда это также дает лучший diff по сравнению с git diff --color-words=.
:)
Думаю, проблема в твоей регистрации. Вы неправильно храните пароль в представлении signup
.
userdetails = CustomUser(firstname=firstname,lastname=lastname,email=email,password=password, areacode=areacode, number=number) # <-- Here
userdetails.save()
Поскольку вы не храните пароль должным образом (в настоящее время он хранится в виде обычного текста, а не хешированного), поэтому функция authenticate
не может получить пользователя.
Итак, вам нужно установить пароль следующим образом:
userdetails = CustomUser(firstname=firstname,lastname=lastname,email=email, areacode=areacode, number=number)
userdetails.set_password(password)
userdetails.save()
Для более подробной информации, пожалуйста, проверьте здесь функцию set_password .
Вам необходимо расширить модель пользователя Django следующим образом:
Models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
#this will extend User model with your own model
class CustomUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# all the other fields you mentioned except areacode and number
# are already in User model so don't need to add them here
areacode = models.CharField(max_length=4)
number = models.CharField(max_length=30)
# Below code will hook the create_custom_user and save_custom_user methods
# to the User model, whenever a save event occurs
@receiver(post_save, sender=User)
def create_custom_user(sender, instance, created, **kwargs):
if created:
CustomeUser.objects.create(user=instance)
@receiver(post_save, sender=User):
def save_custom_user(sender, instance, **kwargs):
instance.customeuser.save()
Теперь вы можете создать пользователя с помощью CustomModel
в выглядит так:
Views.py
from django.contrib.auth.models import User
def signup(request):
if request.method == "POST":
# I would suggest to use django forms
# instead of getting the values directly from request.POST
user = User(firstname=firstname, lastname=lastname, email=email)
user.customuser.areacode = areacode
user.customuser.number = number
user.set_password(password)
user.save()
# rest of the code
doc для форм в django
Также для входа в систему пользователь с электронной почтой вместо имени пользователя вам нужно написать аутентификационный бэкэнд для этого и зарегистрировать его в вашем settings.py
взглянуть здесь