class CoLot(FriendlyUrl, models.Model):
id = models.AutoField(primary_key=True)
co_auction_type = models.ForeignKey('CoAuctionType', verbose_name=_('auction type'))
co_category = TreeForeignKey(CoCategory, verbose_name=_('category'),
related_name='lots')
active_from = models.DateField(verbose_name=_('Active from'), default=date.today)
active_to = models.DateField(verbose_name=_('Active to'), default=date.today)
name = models.CharField(max_length=255, verbose_name=_('Lot\'s name'))
nominal = models.PositiveIntegerField(verbose_name=_('nominal'))
description = models.TextField(verbose_name=_('description'))
year = models.CharField(max_length=255, verbose_name=_('year'))
co_metal_type = models.ForeignKey('CoMetalType', verbose_name=_('metal type'))
location = models.CharField(max_length=255, verbose_name=_('Lot\'s location'))
delivery_info = models.TextField(verbose_name=_('delivery info'))
payment_info = models.TextField(verbose_name=_('payment info'), default="...")
status = models.BooleanField(verbose_name=_('status'), default=True)
co_lot_availability = models.ForeignKey('CoLotAvailability',
verbose_name=_('lot availability'),
null=True)
co_trade_type = models.ForeignKey('CoTradeType', verbose_name=_('trade type'),
null=True)
co_lot_condition = models.ForeignKey('CoLotCondition',
verbose_name=_('lot condition'), null=True)
co_user = models.ForeignKey('custom_auth.CoinUser', verbose_name=_('user'))
reserved_price = models.DecimalField(max_digits=10,
validators=[MinValueValidator(Decimal('0.01'))],
decimal_places=2,
verbose_name=_('reserved price'), default=0.01)
count = models.PositiveIntegerField(verbose_name=_('count'), default=1)
start_price = models.DecimalField(max_digits=10,
validators=[MinValueValidator(Decimal('0.01'))],
decimal_places=2,
verbose_name=_('start price'), default=0.01)
buy_now_price = models.DecimalField(max_digits=10,
validators=[MinValueValidator(Decimal('0.01'))],
decimal_places=2,
verbose_name=_('buy now price'), default=0.01)
co_lot_options = models.ForeignKey('CoLotOption',
verbose_name=_('lot option'), null=True,
blank=True)
dt_created = models.DateTimeField(verbose_name=_('creation date'),
default=datetime(2014, 12, 12, 15, 44, 37, 856544))
class Meta:
managed = True
db_table = 'co_lot'
verbose_name = _('lot')
verbose_name_plural = _('lots')
def __str__(self):
return self.name
@property
def max_bet(self):
bet_list = self.bets.all().order_by('size')
if bet_list:
return bet_list[0]
return None
class CoinUser(AbstractBaseUser, PermissionsMixin):
username = models.CharField(_('username'), max_length=30, unique=True,
help_text=_('Required. 30 characters or fewer. '
'Letters, numbers and @/./+/-/_ characters'),
validators=[validators.RegexValidator(
re.compile('^[\w.@+-]+$'),
_('Enter a valid username.'), _('invalid'))])
first_name = models.CharField(_('first name'), max_length=30)
patronymic = models.CharField(_('patronymic'), max_length=30,
help_text=_(
'Required. 30 characters or fewer.'
' Letters, numbers and @/./+/-/_ characters'))
last_name = models.CharField(_('last name'), max_length=30)
email = models.EmailField(_('email address'), max_length=255, unique=True,
validators=[validators.RegexValidator(re.compile('^.+@.+\..+$', flags=re.IGNORECASE),
_('Enter a valid email.'), _('invalid'))])
post_code = models.CharField(_('post code'), max_length=10)
is_staff = models.BooleanField(_('staff status'), default=False,
help_text=_('Designates whether the user can log into this admin site.'))
is_active = models.BooleanField(_('active'), default=False,
help_text=_('Designates whether this user should be treated as active.'
' Unselect this instead of deleting accounts.'))
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
phone = models.CharField(_('phone number'), max_length=12, unique=True,
validators=[validators.RegexValidator(re.compile('^[0-9]{12}$', flags=re.IGNORECASE),
_('Enter a valid phone number.'), _('invalid'))])
rating = models.DecimalField(max_digits=3, decimal_places=0, default=Decimal('1'),
validators=[MinValueValidator(1), MaxValueValidator(100)], verbose_name=_('rating'))
objects = CoinUserManager()
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email', 'phone', 'first_name', 'patronymic', 'last_name', 'post_code', 'groups']
def get_full_name(self):
full_name = '%s %s' % (self.first_name, self.last_name)
return full_name.strip()
def get_short_name(self):
return self.first_name
def __str__(self):
return self.username
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
class Meta:
managed = True
db_table = "co_user"
verbose_name = _("user")
verbose_name_plural = _("users")
permissions = (
("partner_program", _("Partner program")),)
модели находятся в разных приложениях
Updated 20 Jan. 2015, 18:45 by jankovyj.