示例#1
0
 def _save(self, instance=None):
     if not self.auto_rename: return
     if instance == None: return
     if not instance._get_pk_val():
         # NEW OBJECT, connect to the post_save for renaming
         dispatcher.connect(self._save_new,
                            signals.post_save,
                            sender=instance)
         return
     image = getattr(instance, self.attname)
     if self.name_field:
         image = rename_by_field(image, '%s-%s-%s' \
                                 % (instance.__class__.__name__,
                                    self.name,
                                    getattr(instance, self.name_field)
                                    )
                                 )
     else:
         # XXX this needs testing, maybe it can generate too long image names (max is 100)
         image = rename_by_field(image, '%s-%s-%s' \
                                 % (instance.__class__.__name__,
                                    self.name,
                                    instance._get_pk_val()
                                    )
                                 )
     setattr(instance, self.attname, image)
示例#2
0
 def _save_new(self, instance):
     if not self.auto_rename: return
     try:
         image = getattr(instance, self.attname)
         if self.name_field:
             image = rename_by_field(image, '%s-%s-%s' \
                                     % (instance.__class__.__name__,
                                        self.name,
                                        getattr(instance, self.name_field)
                                        )
                                     )
         else:
             # XXX this needs testing, maybe it can generate too long image names (max is 100)
             image = rename_by_field(image, '%s-%s-%s' \
                                     % (instance.__class__.__name__,
                                        self.name,
                                        instance._get_pk_val()
                                        )
                                     )
         setattr(instance, self.attname, image)
         instance.save()
     finally:
         # cleanup
         dispatcher.disconnect(self._save_new,
                               signals.post_save,
                               sender=instance)
示例#3
0
文件: field.py 项目: hygkui/djpaper
 def _save(self, instance=None,**kwargs):
     if not self.auto_rename: return
     if instance == None: return
     img = getattr(instance, self.attname).url
     # XXX this needs testing, maybe it can generate too long image names (max is 100)
     img = rename_by_field(img, '%s-%s-%s' \
                                  % (instance.__class__.__name__,
                                      self.name,
                                      instance._get_pk_val()
                                     )
                                )
     setattr(instance, self.attname, img)
示例#4
0
 def _save_new(self, instance):
     if not self.auto_rename: return
     try:
         image = getattr(instance, self.attname)
         if self.name_field:
             image = rename_by_field(image, '%s-%s-%s' \
                                     % (instance.__class__.__name__,
                                        self.name,
                                        getattr(instance, self.name_field)
                                        )
                                     )
         else:
             # XXX this needs testing, maybe it can generate too long image names (max is 100)
             image = rename_by_field(image, '%s-%s-%s' \
                                     % (instance.__class__.__name__,
                                        self.name,
                                        instance._get_pk_val()
                                        )
                                     )
         setattr(instance, self.attname, image)
         instance.save()
     finally:
         # cleanup
         dispatcher.disconnect(self._save_new, signals.post_save, sender=instance)
示例#5
0
 def _save(self, instance=None):
     if not self.auto_rename: return
     if instance == None: return
     if not instance._get_pk_val():
         # NEW OBJECT, connect to the post_save for renaming
         dispatcher.connect(self._save_new, signals.post_save, sender=instance)
         return
     image = getattr(instance, self.attname)
     if self.name_field:
         image = rename_by_field(image, '%s-%s-%s' \
                                 % (instance.__class__.__name__,
                                    self.name,
                                    getattr(instance, self.name_field)
                                    )
                                 )
     else:
         # XXX this needs testing, maybe it can generate too long image names (max is 100)
         image = rename_by_field(image, '%s-%s-%s' \
                                 % (instance.__class__.__name__,
                                    self.name,
                                    instance._get_pk_val()
                                    )
                                 )
     setattr(instance, self.attname, image)
示例#6
0
 def _save(self, instance=None):
     if not self.auto_rename: return
     image = getattr(instance, self.attname)
     import md5, time
     m = md5.new()
     m.update(image)
     m.update(str(time.time()))
     theUID = m.hexdigest()
   
     # MODIFIED BY JUSTIN HEIDEMAN, TO GENERATE TOTALLY UNIQUE NAMES
     # XXX this needs testing, maybe it can generate too long image names (max is 100)
     image = rename_by_field(image, '%s-%s' \
                                  % ( self.name,
                                      theUID
                                     )
                                )
     print image
     setattr(instance, self.attname, image)
     print instance._get_pk_val()
示例#7
0
文件: field.py 项目: shula/citytree
 def _pre_save(self, instance=None, **kw):
     # since this is called by the pre_save signal, the pk can be unset.
     self.needs_renaming= False
     if not self.auto_rename: return
     if instance == None: return
     image = getattr(instance, self.attname)
     if instance._get_pk_val() is None:
         if image == '':
             return
         else:
             # TODO: should have primary key at this point.
             return
     # XXX this needs testing, maybe it can generate too long image names (max is 100)
     image = rename_by_field(image, '%s-%s-%s' \
                                  % (instance.__class__.__name__,
                                      self.name,
                                      instance._get_pk_val()
                                     ), mask_image=self.mask_file, logo_image=self.logo_file
                                )
     setattr(instance, self.attname, image)