def get(self, request, pk, format=None):
     try:
         talent = self.get_object(pk)
         talent_visas = TalentVisa.objects.filter(talent=talent.id)
         serializer = TalentVisaSerializer(talent_visas, many=True)
         return Response(serializer.data)
     except Talent.DoesNotExist:
         raise Http404
예제 #2
0
class TalentGeneralSerializer(serializers.ModelSerializer):
    user = GeneralUserSerializer(many=False, read_only=True)
    talent_resume = TalentResumeSerializer(many=True, read_only=True)
    talent_pictures = TalentPictureSerializer(many=True, read_only=True)
    talent_position_types = TalentPositionTypeSerializer(many=True,
                                                         read_only=True)
    talent_position_sub_types = GeneralTalentPositionSubTypeSerializer(
        many=True, read_only=True)
    talent_skills = TalentSkillSerializer(many=True, read_only=True)
    talent_sub_skills = GeneralTalentSubSkillSerializer(many=True,
                                                        read_only=True)
    talent_visas = TalentVisaSerializer(many=True, read_only=True)
    talent_languages = TalentLanguageSerializer(many=True, read_only=True)
    talent_medicals = TalentMedicalSerializer(many=True, read_only=True)
    talent_availabilities = TalentAvailabilitySerializerWithoutTalentID(
        many=True, read_only=True)
    talent_ratings = TalentRatingDetailByTalentSerializer(many=True,
                                                          read_only=True)
    average_rating = serializers.FloatField(source='get_average_rating',
                                            read_only=True)
    profile_status = serializers.JSONField(source='get_profile_status',
                                           read_only=True)
    talent_availabilities_last_update = serializers.DateTimeField(
        source='get_talent_availabilities_last_update', read_only=True)

    class Meta:
        model = Talent
        fields = ('id', 'user', 'sex', 'talent_position_types',
                  'talent_position_sub_types', 'talent_skills',
                  'talent_sub_skills', 'phone_number', 'mailing_addresse1',
                  'mailing_addresse2', 'mailing_addresse3',
                  'mailing_addresse4', 'mailing_addresse5',
                  'mailing_addresse6', 'birthday', 'emergency_first_name',
                  'emergency_last_name', 'emergency_email', 'emergency_phone',
                  'emergency_relationship', 'nationality', 'citizenship',
                  'passport_expiration_date', 'passport_number',
                  'country_of_current_residence', 'have_green_card',
                  'green_card_expiration_date', 'visa_type', 'expiration_date',
                  'height', 'weight', 'bmi', 'age_range', 'head_line', 'bio',
                  'talent_visas', 'talent_languages', 'talent_pictures',
                  'talent_resume', 'talent_medicals', 'talent_availabilities',
                  'talent_availabilities_last_update', 'talent_ratings',
                  'average_rating', 'worked_cruise_ship', 'tid',
                  'approved_date', 'approved_by', 'locked_dance_combination',
                  'created', 'profile_status')
class TalentSerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(many=False, read_only=True)
    talent_resume = TalentResumeSerializer(many=True, read_only=True)
    talent_pictures = TalentPictureSerializer(many=True, read_only=True)
    talent_videos = TalentVideoSerializer(many=True, read_only=True)
    talent_position_sub_type = TalentPositionSubTypeSerializer(many=False,
                                                               read_only=True)
    user = GeneralUserSerializer(many=False, read_only=True)
    talent_additional_position_sub_types = GeneralTalentAdditionalPositionSubTypeSerializer(
        many=True, read_only=True)
    talent_additional_position_types = GeneralTalentAdditionalPositionTypeSerializer(
        many=True, read_only=True)
    talent_visas = TalentVisaSerializer(many=True, read_only=True)
    talent_languages = TalentLanguageSerializer(many=True, read_only=True)
    talent_medicals = TalentMedicalSerializer(many=True, read_only=True)

    class Meta:
        model = Talent
        fields = (
            'id',
            'user',
            'sex',
            'talent_position_sub_type',
            'talent_additional_position_sub_types',
            'talent_additional_position_types',
            'phone_number',
            'mailing_addresse1',
            'mailing_addresse2',
            'mailing_addresse3',
            'mailing_addresse4',
            'mailing_addresse5',
            'mailing_addresse6',
            'birthday',
            'emergency_first_name',
            'emergency_last_name',
            'emergency_email',
            'emergency_phone',
            'emergency_relationship',
            'nationality',
            'citizenship',
            'passport_expiration_date',
            'passport_number',
            'country_of_current_residence',
            'have_green_card',
            'green_card_expiration_date',
            'visa_type',
            'expiration_date',
            'height',
            'weight',
            'bmi',
            'age_range',
            'head_line',
            'bio',
            'talent_visas',
            'talent_languages',
            'talent_pictures',
            'talent_videos',
            'talent_resume',
            'talent_medicals',
            'worked_cruise_ship',

            # 'availabilities',
            # 'auditions',
            'created')