You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
3.0 KiB

from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import gettext as _
from datetime import date
from django.template.defaultfilters import truncatechars
# Create your models here.
TYPE_CHOICES = (
('pers', _('personal')),
('prof', _('professional')),
('asso', _('association')),
)
GENRE_CHOICES = (
('m', _('Male')),
('f', _('Female'))
)
SEX_CHOICES = (
(0, _('exclusively heterosexual')),
(1, _('Heterosexual predominance')),
(2, _('Predominantly heterosexual, occasionally homosexual')),
(3, _('Bisexual without preference')),
(4, _('Predominantly homosexual, occasionally heterosexual')),
(5, _('Homosexual predominance')),
(6, _('exclusively homosexual')),
)
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField( max_length=50, blank=True)
last_name = models.CharField( max_length=50, blank=True)
gender = models.CharField(choices=GENRE_CHOICES, max_length=1, default='m')
birthdate = models.DateField()
companyname = models.CharField(max_length=200, blank=True)
bio = models.TextField(default='no bio ...', max_length=300, blank=True)
avatar = models.OneToOneField(
"Image",
null=True,
blank=True,
on_delete=models.CASCADE)
#avatar = models.ImageField(default='avatar.png', upload_to='avatars/', blank=True)
country = models.CharField( max_length=50, blank=True)
#friends = models.ManyToManyField(User, default=None, blank=True, related_name='friends')
#slug = models.SlugField(unique=True, blank=True)
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
type = models.CharField(max_length=4, choices=TYPE_CHOICES)
tel = models.CharField(max_length=50, blank=True)
sex = models.IntegerField(choices=SEX_CHOICES, blank=True, null=True)
activated = models.BooleanField(default=False)
defaddr = models.ForeignKey('Address', blank=True, null=True, on_delete=models.SET_NULL)
def __str__(self):
return f'{self.user.username}'
def short_bio(self):
return truncatechars(self.bio, 50)
class Address(models.Model):
title = models.CharField(max_length=100)
street1 = models.CharField(max_length=50)
street2 = models.CharField(max_length=50, blank=True)
postalcode = models.CharField(max_length=10)
city = models.CharField(max_length=100)
state = models.CharField(max_length=50)
country = models.CharField(max_length=50)
owner = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
def __str__(self):
return f'{self.title}'
class Image(models.Model):
photo = models.ImageField(default='avatar.png', upload_to='avatars/')
owner = models.ForeignKey(User, on_delete=models.CASCADE)
description = models.CharField(blank=True, max_length=100)
def __str__(self):
return str(self.description)
#avatar = models.OneToOneField("Image", on_delete=models.CASCADE)

Powered by TurnKey Linux.