api serializer
This commit is contained in:
@@ -197,7 +197,8 @@ class Job(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.shortterm)
|
||||
|
||||
#if type(self.job_group) = str:
|
||||
# self.job_group=JobGroup.objects.filter(slug=self.job)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def __str__(self):
|
||||
|
||||
@@ -4,9 +4,10 @@ from rest_framework import serializers
|
||||
|
||||
|
||||
class MemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Member
|
||||
fields = [
|
||||
fields = ['id',
|
||||
'firstname',
|
||||
'surname',
|
||||
'nickname',
|
||||
@@ -21,54 +22,57 @@ class JobGroupSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = JobGroup
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'shortterm',
|
||||
'slug'
|
||||
]
|
||||
|
||||
class JobSerializer(serializers.HyperlinkedModelSerializer):
|
||||
job_group = JobGroupSerializer()
|
||||
|
||||
#job_group = JobGroupSerializer()
|
||||
job_group = serializers.SlugRelatedField(
|
||||
slug_field='slug',queryset = JobGroup.objects
|
||||
)
|
||||
class Meta:
|
||||
model = Job
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'shortterm',
|
||||
'job_group',
|
||||
'slug'
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
job_groups_data = validated_data.pop('job_group')
|
||||
|
||||
jobgroup = JobGroup.objects.get(**job_groups_data)
|
||||
if not jobgroup:
|
||||
jobgroup = JobGroup.objects.create(**job_groups_data)
|
||||
|
||||
job = Job.objects.create(job_group=jobgroup, **validated_data)
|
||||
|
||||
return job
|
||||
|
||||
class JobMemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
member = MemberSerializer()
|
||||
job = JobSerializer()
|
||||
|
||||
#member = MemberSerializer()
|
||||
#job = JobSerializer()
|
||||
job = serializers.SlugRelatedField(
|
||||
slug_field='slug',queryset = Job.objects
|
||||
)
|
||||
member= serializers.SlugRelatedField(
|
||||
slug_field='nickname',queryset = Member.objects
|
||||
)
|
||||
class Meta:
|
||||
model = JobMember
|
||||
fields = [
|
||||
'id',
|
||||
'job_start',
|
||||
'job_end',
|
||||
'member',
|
||||
'job',
|
||||
'job_role'
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
member_data = validated_data.pop('member')
|
||||
print(member_data)
|
||||
member = Member.objects.get(firstname=member_data['firstname'], surname=member_data['surname'])
|
||||
# def create(self, validated_data):
|
||||
# member_data = validated_data.pop('member')
|
||||
# print(member_data)
|
||||
# member = Member.objects.get(firstname=member_data['firstname'], surname=member_data['surname'])
|
||||
#
|
||||
# job_data = validated_data.pop('job')
|
||||
# print(job_data)
|
||||
# job = Job.objects.get(name=job_data['name'])
|
||||
|
||||
job_data = validated_data.pop('job')
|
||||
print(job_data)
|
||||
job = Job.objects.get(name=job_data['name'])
|
||||
# jobmember = JobMember.objects.create(member=member, job=job, **validated_data)
|
||||
|
||||
jobmember = JobMember.objects.create(member=member, job=job, **validated_data)
|
||||
|
||||
return jobmember
|
||||
# return jobmember
|
||||
|
||||
@@ -2,6 +2,7 @@ from django.http import Http404
|
||||
from django.shortcuts import render
|
||||
|
||||
from collections import deque
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
|
||||
from .models import Member, JobMember, JobGroup, Job
|
||||
from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, JobMemberSerializer
|
||||
@@ -97,9 +98,9 @@ class MemberViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = MemberSerializer
|
||||
|
||||
#permission_classes = [permissions.IsAuthenticated]
|
||||
# filter_backends = [DjangoFilterBackend]
|
||||
# filterset_fields = ['legacy_id', 'slug','legacy_rubrik_id']
|
||||
lookup_field = 'name'
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['nickname','mailaccount']
|
||||
# lookup_field = 'name'
|
||||
|
||||
def pre_save(self, obj):
|
||||
obj.image = self.request.FILES.get('image')
|
||||
@@ -112,8 +113,10 @@ class JobGroupViewSet(viewsets.ModelViewSet):
|
||||
queryset = JobGroup.all_jobgroups.all()
|
||||
serializer_class = JobGroupSerializer
|
||||
|
||||
lookup_field = 'name'
|
||||
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['name','slug']
|
||||
#lookup_field = 'name'
|
||||
# lookup_field = 'name'
|
||||
|
||||
class JobViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
@@ -121,7 +124,9 @@ class JobViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
queryset = Job.objects.all()
|
||||
serializer_class = JobSerializer
|
||||
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['name','slug']
|
||||
#lookup_field = 'slug'
|
||||
|
||||
class JobMemberViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
@@ -129,3 +134,6 @@ class JobMemberViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
queryset = JobMember.objects.all()
|
||||
serializer_class = JobMemberSerializer
|
||||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['member','job','job_role']
|
||||
#lookup_field = 'nickname'
|
||||
Reference in New Issue
Block a user