Thursday, 12 July 2018

custom django admin user api

class UserSerializer(serializers.ModelSerializer):

    contact = serializers.CharField(source='userdetails.contact')
    project_code = serializers.CharField(source='userdetails.project_code')
    profile_pic = serializers.FileField(source='userdetails.profile_pic', required=False)
    address = serializers.CharField(source='userdetails.address', required=False)
    video = serializers.FileField(source='userdetails.video', required=False)
    # gender = serializers.CharField(source='userdetails.gender', required=False)
    gender = serializers.ChoiceField(source='userdetails.gender',
    choices=['Male', 'Female']
)
    language = serializers.CharField(source='userdetails.language', required=False)
    dob = serializers.DateField(source='userdetails.dob', required=False)
    education = serializers.CharField(source='userdetails.education', required=False)
    language = serializers.CharField(source='userdetails.language', required=False)
    country = serializers.CharField(source='userdetails.country', required=False)
    profession = serializers.CharField(source='userdetails.profession', required=False)
    city = serializers.CharField(source='userdetails.city', required=False)

    class Meta:
        model = User
        fields = ('id', 'username', 'first_name', 'last_name', 'email', 'city', 'contact', 'project_code', 'profile_pic', 'address',
            'video', 'gender', 'language', 'dob', 'education', 'language', 'country', 'profession')

    def create(self, validated_data):
        profile_data = validated_data.pop('userdetails')
        user = User(
            email=validated_data['email'],
            username =validated_data['username'],
            first_name =validated_data['first_name'],
            last_name =validated_data['last_name'],
        )
        user.save()
        print user.id
        print user.username
        print user.first_name
        print user.last_name
        print user.email
       
        project_code = profile_data.get('project_code')
        contact = profile_data.get('contact')
        address = profile_data.get('address')
        dob = profile_data.get('dob')
        profile_pic = profile_data.get('profile_pic')
        video = profile_data.get('video')
        age = profile_data.get('age')
        education = profile_data.get('education')
        city = profile_data.get('city')
        profession = profile_data.get('profession')
        country = profile_data.get('country')
        gender = profile_data.get('gender')
        language = profile_data.get('language')
        domain = 'mobile'
        user.id = user.id
        UserDetails.objects.create(address=address, contact=contact, user_id=user.id, project_code=project_code,dob=dob, profile_pic=profile_pic, video=video, age=age
                              , education=education, city=city, profession=profession, country=country, gender=gender,language=language , domain=domain)
        return user

No comments:

Post a Comment

Django rest api - filter

views.py from django_filters.rest_framework import DjangoFilterBackend class PollList(viewsets.ModelViewSet):     queryset = X.objects...