#django #django-models #django-rest-framework #django-views #django-templates
Вопрос:
Я создаю страницу входа в систему, и данные уже сохранены в созданной мной модели, а не в форме создания пользователя… и вместо поиска пользователя в моей модели(проверка подлинности пользователя) он выполняет поиск в пользователях …
view.py
def loginpage(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is UserAuthentication: #UserAuthentication is my model where data is stored
login(request, user)
return redirect('index')
else:
messages.warning(request, "Username OR Password is incorrect!")
return redirect('login')
else:
return render(request, "HTML/login.html", context={})
login.html
<form action="#" method="POST">
{%csrf_token %}
<input
class="text"
type="text"
name="username"
placeholder="Username"
required=""
/>
<br />
<br />
<input
class="text"
type="password"
name="password"
placeholder="Password"
required=""
/>
<br />
<br />
{%for message in messages%}
<p id="messages">{{message}}</p>
<br />
{% endfor %}
<input type="submit" value="LOGIN" />
</form>
models.py
class UserAuthentication(models.Model):
username = models.CharField(max_length=100,unique=True,verbose_name="Username",error_messages={'required':'Username already exists'})
email = models.EmailField(unique=True, verbose_name=" Email")
password1 = models.CharField(max_length=50 ,verbose_name="Password")
password2 = models.CharField(max_length=50 ,verbose_name="Confirmaition Password")
def __str__(self):
return self.username
Комментарии:
1. Можете ли вы поделиться своими моделями?
Ответ №1:
В settings.py
файле необходимо указать, какую пользовательскую модель вы хотите использовать в проекте.
Добавьте эту строку в settings.py
:
AUTH_USER_MODEL = '<app_name>.UserAuthentication'
Конечно, измените <app_name>
имя приложения, в котором UserAuthentication
определена модель.
Кроме того, настроить пользовательскую модель в Django не так просто. Я настоятельно рекомендую вам ознакомиться с официальными документами. Вы можете найти это запутанным, тогда вы сможете искать custom user in Django
в Google. Есть много отличных учебных пособий.
Комментарии:
1. Я действительно упоминал об этом в settings.py
AUTH_USER_MODEL= 'mylogin.UserAuthentication'
но это показывает ошибку, котораяAttributeError: type object 'UserAuthentication' has no attribute 'REQUIRED_FIELDS'
2. Привет, я упомянул об этой проблеме в своем ответе. Проблема, о которой вы недавно написали, не имеет отношения к этому вопросу. Действительно, это новый вопрос. Например, вам не нужно наследовать AbstractBaseUser
models.Model
.