Skip to content

Instantly share code, notes, and snippets.

@lucassimon
Created May 6, 2013 19:38
Show Gist options
  • Save lucassimon/5527567 to your computer and use it in GitHub Desktop.
Save lucassimon/5527567 to your computer and use it in GitHub Desktop.
Classe Funcionario, contendo nome email e foto
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import uuid
from django.contrib.auth.models import User
from django.contrib.auth import login as auth_login
from django.db import models
class UserOneToOneModel(models.Model):
user = models.OneToOneField("auth.User")
class Meta:
abstract = True
def get_user_defaults(self):
return {}
def get_default_username_on_creation(self):
return str(uuid.uuid1())[:30]
def get_username_on_creation(self):
return u"user-%d" % self.pk
def auth_login(self, request):
self.user.backend = \
'django.contrib.auth.backends.ModelBackend'
auth_login(request, self.user)
def save(self, *args, **kwargs):
created = self.pk is None
if created:
username = self.get_default_username_on_creation()
defaults = self.get_user_defaults()
user, nill = User.objects.get_or_create(
username=username, defaults=defaults)
self.user = user
saved = super(UserOneToOneModel, self).save(*args, **kwargs)
if self.user:
self.user.username = self.get_username_on_creation()
for k, v in self.get_user_defaults().items():
setattr(self.user, k, v)
self.user.save()
return saved
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from django.contrib.auth.models import User
from django.contrib.auth import login as auth_login
from django.db import models
from common.db.models import UserOneToOneModel
from django.utils.translation import ugettext as _
from django_extensions.helpers.upload import UploadTo
UPLOAD_TO = UploadTo(base='funcionario', instance_field='foto')
class Funcionario(UserOneToOneModel):
nome = models.CharField(_(u'Nome'),max_length=100)
email = models.EmailField(_(u'E-mail'),db_index=True)
telefone = models.CharField(_(u'Telefone'),max_length=40)
foto = models.ImageField(_(u'Avatar'),upload_to=UPLOAD_TO, max_length=255, blank=True,null=True)
cep = models.CharField(_(u'Cep'),max_length=8, null=True,blank = True)
cidade = models.CharField(_(u'Cidade'),max_length=100,blank = True)
logradouro = models.CharField(_(u'Endereço'),max_length=100,blank = True)
numero = models.CharField(_(u'Número'),max_length=10,blank = True)
bairro = models.CharField(_(u'Bairro'),max_length=100,blank = True)
complemento = models.CharField(_(u'Complemento'),max_length=255,blank = True)
class Meta:
verbose_name = u"Funcionário"
verbose_name_plural = u"Funcionários"
ordering = ("nome", )
def __unicode__(self):
return self.nome
def get_user_defaults(self):
return {
'email': self.email,
'last_name': u"NÃO ALTERAR.".upper(),
'first_name': self.nome[:32]}
def get_username_on_creation(self):
return u"funcionario-%d" % self.id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment