68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
from django.db import models
|
|
from django.conf import settings
|
|
import uuid
|
|
from django.contrib.auth.models import User
|
|
|
|
|
|
class BaseModel(models.Model):
|
|
key = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
|
|
create_date = models.DateTimeField(auto_now_add=True)
|
|
modify_date = models.DateTimeField(auto_now=True)
|
|
created_by = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
related_name="%(class)s_createdby",
|
|
on_delete=models.CASCADE,
|
|
null=True,
|
|
blank=True,
|
|
)
|
|
modified_by = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.CASCADE,
|
|
related_name="%(class)s_modifiedby",
|
|
null=True,
|
|
blank=True,
|
|
)
|
|
trash = models.BooleanField(default=False)
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
|
|
class Province(models.Model):
|
|
name = models.CharField(max_length=200, null=True)
|
|
tel_prefix = models.CharField(max_length=200, null=True)
|
|
Lat = models.FloatField(default=0)
|
|
Lng = models.FloatField(default=0)
|
|
|
|
def save(self, *args, **kwargs):
|
|
super(Province, self).save(*args, **kwargs)
|
|
|
|
|
|
class City(models.Model):
|
|
province = models.ForeignKey(
|
|
Province, on_delete=models.CASCADE, related_name="city_province", null=True
|
|
)
|
|
name = models.CharField(max_length=200, null=True)
|
|
Lat = models.FloatField(default=0)
|
|
Lng = models.FloatField(default=0)
|
|
|
|
def save(self, *args, **kwargs):
|
|
super(City, self).save(*args, **kwargs)
|
|
|
|
|
|
class UserProfile(BaseModel):
|
|
key = models.UUIDField(default=uuid.uuid4, editable=True, null=True)
|
|
user = models.ForeignKey(
|
|
User, on_delete=models.CASCADE, related_name="users", null=True
|
|
)
|
|
fullname = models.CharField(max_length=150, null=True, default="")
|
|
first_name = models.CharField(max_length=200, null=True, default="")
|
|
last_name = models.CharField(max_length=200, null=True, default="")
|
|
mobile = models.CharField(max_length=11, null=True, default="")
|
|
password = models.CharField(max_length=100, null=True)
|
|
base_order = models.BigIntegerField(null=True)
|
|
|
|
def save(self, *args, **kwargs):
|
|
self.fullname = self.first_name + " " + self.last_name
|
|
super(UserProfile, self).save(*args, **kwargs)
|