-
Notifications
You must be signed in to change notification settings - Fork 139
/
Copy pathmodels.py
48 lines (36 loc) · 1.25 KB
/
models.py
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
48
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import UserManager
from django.db import models
from django.urls import reverse
from polymodels.managers import PolymorphicManager
from polymodels.models import PolymorphicModel
from viewflow import jsonstore
class UserManager(PolymorphicManager, UserManager):
pass
class User(PolymorphicModel, AbstractUser):
data = models.JSONField(null=True, default=dict)
objects = UserManager()
class Employee(User):
hire_date = jsonstore.DateField()
salary = jsonstore.DecimalField(max_digits=10, decimal_places=2)
department = jsonstore.CharField(
max_length=200,
choices=[
("Marketing", "Marketing"),
("Development", "Development"),
("Sales", "Sales"),
],
)
def get_absolute_url(self):
return reverse("employee_edit", args=[self.pk])
class Meta:
proxy = True
class Client(User):
address = jsonstore.CharField(max_length=250)
zip_code = jsonstore.CharField(max_length=250)
city = jsonstore.CharField(max_length=250)
vip = jsonstore.BooleanField()
def get_absolute_url(self):
return reverse("client_edit", args=[self.pk])
class Meta:
proxy = True