| Home | Trees | Indices | Help |
|---|
|
|
1 """ 2 These classes are light wrappers around Django's database API that provide 3 convenience functionality and permalink functions for the databrowse app. 4 """ 5 6 from django.db import models 7 from django.utils import dateformat 8 from django.utils.text import capfirst 9 from django.utils.translation import get_date_formats 10 from django.utils.encoding import smart_unicode, smart_str, iri_to_uri 11 from django.utils.safestring import mark_safe 12 from django.db.models.query import QuerySet 13 14 EMPTY_VALUE = '(None)' 15 DISPLAY_SIZE = 100 165919 self.site = site 20 self.model = model 21 self.model_list = site.registry.keys() 22 self.verbose_name = model._meta.verbose_name 23 self.verbose_name_plural = model._meta.verbose_name_plural24 27 3133 return mark_safe('%s%s/%s/' % (self.site.root_url, self.model._meta.app_label, self.model._meta.module_name))34 3739 easy_qs = self.model._default_manager.get_query_set()._clone(klass=EasyQuerySet) 40 easy_qs._easymodel = self 41 return easy_qs42 45 4951 try: 52 f = self.model._meta.get_field(name) 53 except models.FieldDoesNotExist: 54 return None 55 return EasyField(self, f)56637665 return smart_str(u'<EasyField for %s.%s>' % (self.model.model._meta.object_name, self.field.name))66 7072 if self.field.choices: 73 return mark_safe('%s%s/%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, self.field.name)) 74 elif self.field.rel: 75 return mark_safe('%s%s/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name))818783 return smart_str(u'<EasyChoice for %s.%s>' % (self.model.model._meta.object_name, self.field.name))8413390 self.model, self.instance = easy_model, instance9193 return smart_str(u'<EasyInstance for %s (%s)>' % (self.model.model._meta.object_name, self.instance._get_pk_val()))9496 val = smart_unicode(self.instance) 97 if len(val) > DISPLAY_SIZE: 98 return val[:DISPLAY_SIZE] + u'...' 99 return val100 103105 return self.instance._get_pk_val()106108 return mark_safe('%s%s/%s/objects/%s/' % (self.model.site.root_url, self.model.model._meta.app_label, self.model.model._meta.module_name, iri_to_uri(self.pk())))109111 """ 112 Generator that yields EasyInstanceFields for each field in this 113 EasyInstance's model. 114 """ 115 for f in self.model.model._meta.fields + self.model.model._meta.many_to_many: 116 yield EasyInstanceField(self.model, self, f)117136 self.model, self.field, self.instance = easy_model, field, instance 137 self.raw_value = getattr(instance.instance, field.name)138140 return smart_str(u'<EasyInstanceField for %s.%s>' % (self.model.model._meta.object_name, self.field.name))141143 """ 144 Returns a list of values for this field for this instance. It's a list 145 so we can accomodate many-to-many fields. 146 """ 147 # This import is deliberately inside the function because it causes 148 # some settings to be imported, and we don't want to do that at the 149 # module level. 150 if self.field.rel: 151 if isinstance(self.field.rel, models.ManyToOneRel): 152 objs = getattr(self.instance.instance, self.field.