Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.db import models
- from django.contrib.auth.models import User
- from django.contrib.auth.models import AbstractBaseUser
- from django.contrib.auth.models import BaseUserManager, PermissionsMixin
- class UserIdeaManager(BaseUserManager):
- def create_user(self, email, password=None, **kwargs):
- if not email:
- raise ValueError('Users must have a valid email address.')
- useridea = self.model(
- email=self.normalize_email(email),
- )
- useridea.set_password(password)
- useridea.save()
- return useridea
- def create_superuser(self, email, password, **kwargs):
- useridea = self.create_user(email, password, **kwargs)
- useridea.is_admin = True
- useridea.is_staff = True
- useridea.is_superuser = True
- useridea.save()
- return useridea
- class UserIdea(AbstractBaseUser, PermissionsMixin):
- email = models.EmailField(unique=True)
- first_name = models.CharField(max_length=50, blank=True)
- last_name = models.CharField(max_length=50, blank=True)
- phone = models.CharField(max_length=50, blank=True)
- commune = models.CharField(max_length=50, blank=True)
- age = models.PositiveIntegerField(default=0, blank=True)
- is_student = models.BooleanField(default=False)
- career = models.CharField(max_length=60, blank=True)
- university = models.CharField(max_length=60, blank=True)
- is_active = models.BooleanField(default=True)
- is_admin = models.BooleanField(default=False)
- is_staff = models.BooleanField(default=False)
- objects = UserIdeaManager()
- USERNAME_FIELD = 'email'
- # REQUIRED_FIELDS = ['username']
- def __unicode__(self):
- return self.email
- def get_full_name(self):
- return ' '.join([self.first_name, self.last_name])
- def get_short_name(self):
- return self.first_name
- class Category(models.Model):
- cat_name = models.TextField()
- def __unicode__(self):
- return self.cat_name
- class Idea(models.Model):
- title = models.TextField(max_length=200)
- description = models.TextField(max_length=400)
- url_video = models.URLField(max_length=500, blank=False)
- num_vote = models.PositiveIntegerField(default=0)
- user = models.ForeignKey(UserIdea)
- category = models.ForeignKey(Category)
- main_image = models.ImageField(upload_to='imagenes_principales/',
- default='', blank=False)
- def __unicode__(self):
- return self.title
- class Vote(models.Model):
- user = models.ForeignKey(UserIdea)
- idea = models.ForeignKey(Idea)
- class Meta:
- unique_together = (('user', 'idea'), )
- def __unicode__(self):
- return u'{} votó {}'.format(
- self.user.username, self.idea.titulo)
- class Commentary(models.Model):
- user = models.ForeignKey(UserIdea)
- idea = models.ForeignKey(Idea)
- commentary = models.TextField(max_length=500)
- def __unicode__(self):
- return u'{} Comentó {}'.format(
- self.user.username, self.idea.titulo, self.commentary)
- class Image(models.Model):
- idea = models.ForeignKey(Idea)
- image = models.ImageField(upload_to='imagenes_ideas/',
- default='', blank=True)
- def __unicode__(self):
- return u'{} Tiene {}'.format(
- self.idea.title, self.image)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement