Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.conf import settings
- from django.core.urlresolvers import reverse
- from django.utils.translation import ugettext_lazy as _
- from smart_selects.db_fields import ChainedForeignKey
- class PropertyType(models.Model):
- """Class that implements properties types, as House or Apartment."""
- name = models.CharField(_('Type of Property'), max_length=140)
- class Meta:
- verbose_name = _("Type of Property")
- verbose_name_plural = _('Type of Properties')
- def __str__(self):
- return self.name
- class Category(models.Model):
- """Model for category of properties."""
- title = models.CharField(_('Category'), max_length=140)
- property_type = models.ForeignKey(PropertyType)
- class Meta:
- verbose_name = _("Category")
- verbose_name_plural = _('Categories')
- def __str__(self):
- return self.title
- class Property(models.Model):
- """Model for all properties."""
- owner = models.ForeignKey(settings.AUTH_USER_MODEL)
- address = models.CharField(_('Address'), max_length=140)
- state = models.CharField(_('State'), max_length=80)
- property_type = models.ForeignKey(PropertyType)
- category = ChainedForeignKey(
- Category,
- chained_field='property_type',
- chained_model_field='property_type'
- )
- rooms = models.PositiveSmallIntegerField(_('Rooms'))
- title = models.CharField(_('Title'), max_length=140)
- image = models.ImageField(_('Image'), upload_to='img/property/')
- rent_price = models.DecimalField(
- _('Property Value'),
- max_digits=19,
- decimal_places=10
- )
- timestamp = models.DateTimeField(auto_now=True)
- class Meta:
- verbose_name = _("Property")
- verbose_name_plural = _('Properties')
- def __str__(self):
- return self.title
- def get_absolute_url(self):
- """Return the absolute url for the model instance."""
- return reverse('properties:show_property', args=[self.id])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement