· 7 years ago · Dec 19, 2018, 10:42 AM
1https://xxx.s3.amazonaws.com/media/persons/niravjoshi/20181218152410.jpg
2
3import os
4import pymysql # noqa: 402
5pymysql.install_as_MySQLdb()
6import dj_database_url
7from decouple import config
8import django_heroku
9
10# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
11
12BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
13
14#SECRET_KEY = 'feufm)u(pvsvb%&_%%*)p_bpa+sv8zt$#_-do5q3(vou-j*d#p'
15
16SECRET_KEY = config('SECRET_KEY')
17DEBUG = config('DEBUG', default=False, cast=bool)
18DATABASES = {
19 'default': dj_database_url.config(
20 default=config('DATABASE_URL')
21 )
22}
23
24DEBUG = True
25
26ALLOWED_HOSTS = []
27
28# Application definition
29
30INSTALLED_APPS = [
31 'django.contrib.admin',
32 'django.contrib.auth',
33 'django.contrib.contenttypes',
34 'django.contrib.sessions',
35 'django.contrib.messages',
36 'django.contrib.staticfiles',
37 'django.contrib.sites',
38 #Django Project Apps
39 'persons',
40 'rest_framework',
41 'allauth',
42 'allauth.account',
43 'allauth.socialaccount',
44 'allauth.socialaccount.providers.google',
45 #'social_django',
46]
47
48# Static files (CSS, JavaScript, Images)
49# https://docs.djangoproject.com/en/1.11/howto/static-files/
50AWS_REGION = os.environ.get('AWS_REGION', '') # e.g. eu-west-1
51AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY', '')
52AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_KEY', '')
53AWS_STORAGE_BUCKET_NAME = os.environ.get('S3_BUCKET', '')
54AWS_QUERYSTRING_AUTH = False
55AWS_S3_CUSTOM_DOMAIN = os.environ.get("AWS_S3_CUSTOM_DOMAIN", "")
56
57MEDIAFILES_LOCATION = 'media'
58DEFAULT_FILE_STORAGE = 'DjangoE2ISAapi.storage_backends.MediaStorage'
59MEDIA_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, MEDIAFILES_LOCATION)
60MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
61
62AWS_STATIC_LOCATION = 'static'
63STATICFILES_STORAGE = 'DjangoE2ISAapi.storage_backends.StaticStorage'
64STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_STATIC_LOCATION)
65
66
67
68
69STATICFILES_DIRS = [
70 os.path.join(BASE_DIR, 'static'),
71]
72django_heroku.settings(locals())
73
74from DjangoE2ISAapi.restconf.main import *
75
76from django.conf import settings
77from storages.backends.s3boto3 import S3Boto3Storage
78
79class StaticStorage(S3Boto3Storage):
80 location = settings.AWS_STATIC_LOCATION
81
82class MediaStorage(S3Boto3Storage):
83 location = settings.MEDIAFILES_LOCATION
84
85from django.core.serializers import serialize
86from django.db import models
87from django.conf import settings
88import json
89from django.core.serializers.json import DjangoJSONEncoder
90# Create your models here.
91
92def upload_file(instance,filename):
93 import os
94 from django.utils.timezone import now
95 filename_base, filename_ext = os.path.splitext(filename)
96 return "persons/{user}/{filename}".format(user=instance.UserName, filename=now().strftime("%Y%m%d%H%M%S")+filename_ext.lower())
97
98
99
100class PersonQuerySet(models.QuerySet):
101 def serialize(self):
102 list_values=list(self.values('UserName','PersonId','PersonName','Person_Image','Person_sex','Person_BDate'))
103 print (list_values)
104 return json.dumps(list_values,sort_keys=True,indent=1,cls=DjangoJSONEncoder)
105
106class PersonManager(models.Manager):
107 def get_queryset(self):
108 return PersonQuerySet(self.model,using=self._db)
109
110
111class Person(models.Model):
112 UserName = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,)
113 PersonId = models.AutoField(primary_key=True)
114 PersonName = models.CharField("person's first name", max_length=30,null=False)
115 Person_Image = models.ImageField(upload_to=upload_file,null=True, blank=True)
116 SEX = (('M','Male'),('F','Female'), ('N','None'), )
117 Person_sex = models.CharField(max_length=1,choices=SEX,null=False)
118 Person_BDate = models.DateField(null=False)
119 Person_CDate = models.DateField(null=False,auto_now_add=True)
120 objects = PersonManager()
121
122
123 def __str__(self):
124 return str(self.PersonName) or ""
125
126 def serialize(self):
127 data={
128 'UserName': self.UserName,
129 'PersonId': self.PersonId,
130 'PersonName': self.PersonName,
131 'Person_Image':self.Person_Image,
132 'Person_sex': self.Person_sex,
133 'Person_Bdate': self.Person_BDate
134 }
135 data = json.dumps(data,sort_keys=True,indent=1,cls=DjangoJSONEncoder)
136 return data
137
138 @property
139 def owner(self):
140 return self.UserName