У меня нет опыта написания API, поэтому мне нужно написать API для функции входа. Мне нужно ввести логин и пароль, и если он правильный, у меня есть разрешение на вход на сайт. Вот что у меня есть:
Вот мой взгляд для входа в систему
class CustomLoginView(LoginView):
template_name = 'accounts/sign_in.html'
form_class = SigninForm
def form_valid(self, form):
super().form_valid(form)
user = form.get_user()
if form.get_cook_role():
user.profile.cook_role = form.get_cook_role()
if form.get_role():
user.profile.role = form.get_role()
user.profile.save()
auth_login(self.request, form.get_user())
return HttpResponseRedirect(self.get_success_url())
вот моя модель пользователя:
class Profile(ProfileMixin, models.Model):
organization = models.ForeignKey(Organization, null=True, on_delete=models.CASCADE)
user = models.OneToOneField(User, on_delete=models.CASCADE)
online = models.BooleanField(default=False)
avatar = models.ImageField(upload_to='profile/avatars/', null=True, blank=True)
gender = models.CharField(max_length=10, blank=True,
choices=GENDER_CHOICES.get_choices())
role = models.PositiveIntegerField('Роль пользователя',
default=STAFF_ROLES.COOK,
choices=STAFF_ROLES.choices)
cook_role = models.ForeignKey(CookRole, verbose_name='Роль на кухне',
null=True, blank=True, related_name='users',
on_delete=models.CASCADE)
birthday = models.DateField(null=True, blank=True)
вот мои URL
urlpatterns = [
url(r'^signin/', views.CustomLoginView.as_view(), name='signin'),
url(r'^signout/$', views.sign_out, name='signout'),
]
Пожалуйста, опишите шаги, которые я должен выполнить, чтобы написать API, с помощью которого я могу войти в систему