Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

from django.db import models 

 

from backend_app.models.abstract.base import ( 

BaseModel, 

BaseModelSerializer, 

BaseModelViewSet, 

) 

from backend_app.permissions.app_permissions import ReadOnly 

 

 

# Data model based on : https://unstats.un.org/unsd/methodology/m49/overview/ 

 

 

class Country(BaseModel): 

name = models.CharField(max_length=200) 

iso_alpha2_code = models.CharField(primary_key=True, max_length=2) 

iso_alpha3_code = models.CharField( 

unique=True, max_length=3, default="", blank=True 

) 

region_name = models.CharField(max_length=200) 

region_un_code = models.CharField(max_length=3) 

sub_region_name = models.CharField(max_length=200, default="", blank=True) 

sub_region_un_code = models.CharField(max_length=3, default="", blank=True) 

intermediate_region_name = models.CharField(max_length=200, default="", blank=True) 

intermediate_region_un_code = models.CharField(max_length=3, default="", blank=True) 

 

 

class CountrySerializer(BaseModelSerializer): 

class Meta: 

model = Country 

fields = BaseModelSerializer.Meta.fields + ( 

"name", 

"iso_alpha2_code", 

"iso_alpha3_code", 

"region_name", 

"region_un_code", 

"sub_region_name", 

"intermediate_region_name", 

"intermediate_region_un_code", 

) 

 

 

class CountryViewSet(BaseModelViewSet): 

queryset = Country.objects.all() # pylint: disable=E1101 

serializer_class = CountrySerializer 

permission_classes = (ReadOnly,) 

end_point_route = "countries"