mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-26 11:37:33 +00:00
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
import logging
|
|
from django.db import models
|
|
from django.db.models import get_model
|
|
from django.utils import simplejson
|
|
import os
|
|
from core.utils import url
|
|
from dss import localsettings, settings
|
|
|
|
class _BaseModel(models.Model):
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class Meta:
|
|
abstract = True
|
|
app_label = 'spa'
|
|
|
|
def tosimplejson(self):
|
|
ret = simplejson.dump(self)
|
|
|
|
@classmethod
|
|
def get_lookup(cls, filter_field, transform=None, filter=None):
|
|
if filter is not None:
|
|
filter_dict = {'%s__startswith' % filter_field: filter}
|
|
return cls.objects.all().filter(filter_dict).extra(select=transform)
|
|
else:
|
|
return cls.objects.all()#.extra(transform)
|
|
|
|
def get_image_url(self, image, default):
|
|
try:
|
|
if os.path.isfile(image.path):
|
|
images_root = localsettings.IMAGE_URL if hasattr(localsettings, 'IMAGE_URL') else "%s" % settings.MEDIA_URL
|
|
ret = "%s/%s" % (images_root, image)
|
|
return url.urlclean(ret)
|
|
except Exception, ex:
|
|
pass
|
|
|
|
return default
|
|
|
|
@classmethod
|
|
def get_lookup_filter_field(cls):
|
|
field_list = cls._meta.get_all_field_names();
|
|
for field in field_list:
|
|
if field.endswith("name") or field.endswith("description"):
|
|
return field
|
|
return "description" |