models.py 966 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.contrib.gis.db import models
  2. from django.utils.encoding import python_2_unicode_compatible
  3. @python_2_unicode_compatible
  4. class NamedModel(models.Model):
  5. name = models.CharField(max_length=30)
  6. objects = models.GeoManager()
  7. class Meta:
  8. abstract = True
  9. required_db_features = ['gis_enabled']
  10. def __str__(self):
  11. return self.name
  12. class City(NamedModel):
  13. point = models.PointField(geography=True)
  14. class Meta:
  15. app_label = 'geogapp'
  16. required_db_features = ['gis_enabled']
  17. class Zipcode(NamedModel):
  18. code = models.CharField(max_length=10)
  19. poly = models.PolygonField(geography=True)
  20. class County(NamedModel):
  21. state = models.CharField(max_length=20)
  22. mpoly = models.MultiPolygonField(geography=True)
  23. class Meta:
  24. app_label = 'geogapp'
  25. required_db_features = ['gis_enabled']
  26. def __str__(self):
  27. return ' County, '.join([self.name, self.state])