118 lines
3.8 KiB
Python
118 lines
3.8 KiB
Python
from rest_framework import serializers
|
|
from rest_framework_gis.serializers import GeoFeatureModelSerializer
|
|
from sqlalchemy.sql.functions import mode
|
|
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas
|
|
from drf_extra_fields.fields import Base64ImageField
|
|
|
|
#from django.contrib.auth.models import User
|
|
from .models import CustomUser
|
|
from django.contrib.auth import authenticate
|
|
|
|
from .models import TestModel
|
|
|
|
|
|
class LocationCatSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model=Location
|
|
fields=['category',]
|
|
|
|
|
|
class LocationSerializer(GeoFeatureModelSerializer):
|
|
class Meta:
|
|
model=Location
|
|
geo_field='geom'
|
|
fields="__all__"
|
|
|
|
|
|
class Location_lineSerializer(GeoFeatureModelSerializer):
|
|
class Meta:
|
|
model=Location_line
|
|
geo_field='geom'
|
|
fields="__all__"
|
|
|
|
class Location_polygonSerializer(GeoFeatureModelSerializer):
|
|
class Meta:
|
|
model=Location_polygon
|
|
geo_field='geom'
|
|
fields="__all__"
|
|
|
|
|
|
class JPN_main_perfSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model=JpnAdminMainPerf
|
|
fields=['id', 'adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode']
|
|
|
|
class JPN_sub_perSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model=JpnSubPerf
|
|
fields=['id', 'adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode', 'adm2_ja', 'adm2_en', 'adm2_pcode']
|
|
|
|
|
|
class JPN_perfSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model=JpnAdminPerf
|
|
fields=['id','et_id', 'et_right', 'et_left', 'adm2_l', 'adm1_l', 'adm0_l', 'adm0_r', 'adm1_r', 'adm2_r', 'admlevel']
|
|
|
|
|
|
class GifuAreaSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model= GifuAreas
|
|
fields=['id', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode', 'adm2_ja', 'adm2_en', 'adm2_pcode', 'area_nm']
|
|
|
|
|
|
|
|
class CreateUserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = CustomUser
|
|
fields = ('email', 'password')
|
|
extra_kwargs = {'password': {'write_only': True}}
|
|
|
|
def create(self, validated_data):
|
|
user = CustomUser.objects.create_user(validated_data['email'],validated_data['password'])
|
|
return user
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = CustomUser
|
|
fields = ('id','email',)
|
|
|
|
|
|
class LoginUserSerializer(serializers.Serializer):
|
|
email = serializers.CharField()
|
|
password = serializers.CharField()
|
|
|
|
def validate(self, data):
|
|
user = authenticate(**data)
|
|
if user and user.is_active:
|
|
return user
|
|
raise serializers.ValidationError("Invalid Details.")
|
|
|
|
|
|
class UseractionsSerializer(serializers.ModelSerializer):
|
|
|
|
#user = UserSerializer(read_only=True)
|
|
#location = LocationSerializer(read_only=True)
|
|
#location = serializers.RelatedField(source='Location', read_only=True)
|
|
#location = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = Useractions
|
|
fields = ('id', 'user', 'location', 'wanttogo', 'like', 'checkin', 'order',)
|
|
|
|
class UserDestinationSerializer(serializers.ModelSerializer):
|
|
|
|
#user = UserSerializer(read_only=True)
|
|
location = LocationSerializer(read_only=True)
|
|
#location = serializers.RelatedField(source='Location', read_only=True)
|
|
#location = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = Useractions
|
|
fields = ('id', 'user', 'location', 'wanttogo', 'like', 'checkin')
|
|
|
|
|
|
class TestSerialiser(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
model = TestModel
|
|
fields = ('id', 'testbane', 'wanttogo', 'like', 'checkin') |