1、强化接口顺序,models==>serializers==>(permission)>views>urls
2、models.模块在前面已经编写。
3、在projects.serializers中创建序列化器类。
class EnvironmentSerializer(serializers.ModelSerializer):
class Meta:
model = Environment
exclude = ['is_delete', 'u_time']
# 手写联合唯一的约束,因为新的django联合唯一写法,drf不能自动识别
validators = [
UniqueTogetherValidator(queryset=model.objects.all(), fields=['project', 'name'])
]
# 因为不能检测到项目已删除
# def validate_project(self, value):
# if value.is_delete:
# raise serializers.ValidationError('已删除的项目不能使用')
#
# return value
4、写views.py
class EnvironmentViewSet(ModelViewSet):
serializer_class = EnvironmentSerializer
queryset = Environment.objects.all()
permission_classes = [IsAuthenticated] # 登录权限才能看滴
def get_queryset(self):
queryset = super().get_queryset()
project_id = self.request.query_params.get('project')
if project_id is not None:
queryset = queryset.filter(project=project_id)
return queryset
5、添加urls.调试接口即可