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