Напишите представление API Django для функции входа - PullRequest
0 голосов
/ 11 июня 2019

У меня нет опыта написания 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, с помощью которого я могу войти в систему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...