Galerie: fix nahrávání fotek přes admin
* Obrázek si při save() vyplní název
* obrazek_filename() nespoléhá na to, že je každá galerie pod nějakým
    soustředěním
			
			
This commit is contained in:
		
							parent
							
								
									e3e77dc852
								
							
						
					
					
						commit
						23aede313e
					
				
					 1 changed files with 44 additions and 26 deletions
				
			
		|  | @ -31,10 +31,19 @@ def obrazek_filename_velky(): | |||
| def obrazek_filename(self, filename): | ||||
|     gal = self.galerie | ||||
|     cislo_gal = force_unicode(gal.pk) | ||||
|     cesta = "" | ||||
|     while(not gal.soustredeni): | ||||
| 
 | ||||
|     # najdi kořenovou galerii | ||||
|     while (gal.galerie_up): | ||||
|         gal = gal.galerie_up | ||||
|     return os.path.join('Galerie', "soustredeni_" + force_unicode(gal.soustredeni.pk), "galerie_" + cislo_gal, "velky", force_unicode(self.nazev)) | ||||
| 
 | ||||
|     # soustředění je v cestě jen pokud galerie pod nějaké patří | ||||
|     cesta = ( | ||||
|         ['Galerie'] + | ||||
|         (["soustredeni_" + force_unicode(gal.soustredeni.pk)] if gal.soustredeni else []) + | ||||
|         ["galerie_" + cislo_gal, force_unicode(self.nazev)] | ||||
|     ) | ||||
| 
 | ||||
|     return os.path.join(*cesta) | ||||
| 
 | ||||
| class Obrazek(models.Model): | ||||
|     obrazek_velky = models.ImageField(upload_to=obrazek_filename, | ||||
|  | @ -50,8 +59,10 @@ class Obrazek(models.Model): | |||
|     datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add=True) | ||||
|     galerie = models.ForeignKey('Galerie', blank=True, null=True) | ||||
|     poradi = models.IntegerField('Pořadí', blank=True, null=True) | ||||
| 
 | ||||
|     def __unicode__(self): | ||||
|     return self.nazev + " -- " + unicode(self.obrazek_velky.name) | ||||
|           return unicode(self.obrazek_velky.name) | ||||
| 
 | ||||
|     class Meta: | ||||
|       verbose_name = 'Obrázek' | ||||
|       verbose_name_plural = 'Obrázky' | ||||
|  | @ -62,6 +73,13 @@ class Obrazek(models.Model): | |||
|     obrazek_maly_tag.short_description = "Náhled" | ||||
|     obrazek_maly_tag.allow_tags = True | ||||
| 
 | ||||
|     def save(self, *args, **kwargs): | ||||
|         # obrázek potřebuje název, protože se z něj generuje cesta pro jeho uložení | ||||
|         # (a pak se podle něj taky řadí) | ||||
|         if self.nazev is None: | ||||
|             self.nazev = os.path.basename(self.obrazek_velky.name) | ||||
|         super(Obrazek, self).save(*args, **kwargs) | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| class Galerie(models.Model): | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Matěj Kocián
						Matěj Kocián