python - 想使用 django rest 框架进行身份验证,我想为导师和其他用户设置登录路径并保留一些端点
问题描述
基本上我想使用 user_details 模型对当前用户进行身份验证,并检查当前用户是否是导师并为端点建立授权并保留用户的一些端点 但我无法理解如何实现它
我的模型.py
from django.db import models
# Create your models here.
class LiveClass(models.Model):
standard = models.IntegerField()
no_of_students_registered = models.IntegerField(default=0)
class Meta:
verbose_name_plural = 'Class'
class User_details(models.Model):
name = models.CharField(max_length=30)
standard = models.ForeignKey(LiveClass, on_delete=models.CASCADE)
email = models.EmailField(max_length=30)
mobile_number = models.IntegerField()
class Meta:
verbose_name_plural = 'User_details'
class Mentor(models.Model):
name = models.CharField(max_length=30)
details = models.TextField()
class Meta:
verbose_name_plural = 'Mentors'
class LiveClass_details(models.Model):
standard = models.ForeignKey(LiveClass, on_delete=models.CASCADE)
chapter_name = models.CharField(max_length=30)
chapter_details = models.TextField()
mentor_name = models.ForeignKey(Mentor, max_length=30, on_delete=models.CASCADE)
class_time = models.DateTimeField()
class Meta:
verbose_name_plural = 'LiveClass_details'
class LiveClass_registration(models.Model):
class_details = models.OneToOneField(LiveClass_details, on_delete=models.CASCADE)
name = models.OneToOneField(User_details, on_delete=models.CASCADE)
class Meta:
verbose_name_plural = 'LiveClass_registration'
我的序列化程序.py
from rest_framework import serializers
from . import models
class LiveClass_serializer(serializers.ModelSerializer):
class Meta:
model = models.LiveClass
fields = '__all__'
class User_details_serializer(serializers.ModelSerializer):
class Meta:
model = models.User_details
fields = '__all__'
class LiveClass_details_serializer(serializers.ModelSerializer):
class Meta:
model = models.LiveClass_details
fields = '__all__'
class Mentor_serializer(serializers.ModelSerializer):
class Meta:
model = models.Mentor
fields = '__all__'
class LiveClass_registration_serializer(serializers.ModelSerializer):
class Meta:
model = models.LiveClass_registration
fields = '__all__'
我的 urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('liveclass_api.urls'))
]
我的观点.py
from django.shortcuts import render
from rest_framework import mixins
from rest_framework import generics
from . import serializers
from . import models
# Create your views here.
class ListLiveClass(mixins.ListModelMixin, generics.GenericAPIView):
queryset = models.LiveClass_details.objects.all()
serializer_class = serializers.LiveClass_details_serializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
class ListMentors(mixins.ListModelMixin, generics.GenericAPIView):
queryset = models.Mentor.objects.all()
serializer_class = serializers.Mentor_serializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
完整的github代码:https ://github.com/dhruv354/django-liveclass.git
解决方案
推荐阅读
- python - 有人可以在 Python 数据模型的上下文中解释什么是“对象”吗?
- java - Java Fx 在应用程序启动方法中显示异常
- python - 从指向另一个单元格的单元格获取实际值
- sql - 在 SQL 中按权利分组
- c++ - 事件处理?
- c - 使用大型数组时如何防止stackoverflow错误?C
- google-apps-script - AppScript is not sending Emails automatically
- python - 使用 Django Rest Framework 依次验证各个属性
- python - 引用外部 html 代码片段
- python - 如何比较模型中的 trainable_weights 以了解它是否正在学习任何东西?