initial
This commit is contained in:
3
web/models/__init__.py
Normal file
3
web/models/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from .custom_user import CustomUser
|
||||
from .project import Project
|
||||
from .membership import Membership
|
19
web/models/custom_user.py
Normal file
19
web/models/custom_user.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from django.contrib.auth.models import AbstractUser
|
||||
from django.db import models
|
||||
|
||||
|
||||
class CustomUser(AbstractUser):
|
||||
vk_id = models.IntegerField(null=True, blank=True)
|
||||
yandex_id = models.BigIntegerField(null=True, blank=True)
|
||||
only_one_project = models.BooleanField(default=True)
|
||||
selected_project = models.ForeignKey('Project', on_delete=models.CASCADE, null=True)
|
||||
|
||||
@property
|
||||
def profile_photo_url(self):
|
||||
return f"/profile_photo?id={self.id}"
|
||||
|
||||
@property
|
||||
def projects(self):
|
||||
from web.models import Membership
|
||||
for membership in Membership.objects.filter(user=self):
|
||||
yield membership.project
|
9
web/models/membership.py
Normal file
9
web/models/membership.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from django.db import models
|
||||
|
||||
from web.models.custom_user import CustomUser
|
||||
from web.models.project import Project
|
||||
|
||||
|
||||
class Membership(models.Model):
|
||||
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
|
||||
project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
5
web/models/project.py
Normal file
5
web/models/project.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Project(models.Model):
|
||||
name = models.TextField()
|
Reference in New Issue
Block a user