2011-12-04 11 views
8

Ho un modelloUtilizzando height_field e width_field attribuire in ImageField di Django

class Anh_chi_tiet(models.Model): 
    du_an  = models.ForeignKey(Du_an) 
    title  = models.CharField(max_length=120) 
    url   = models.ImageField(upload_to='images', height_field='50', width_field='100') 
    url_detail = models.ImageField(upload_to='images', height_field='200', width_field='400') 

ricevo sempre questo errore:

'Anh_chi_tiet' object has no attribute '100' 

Sembra Django richiede entrambi i campi nella stessa tabella Anh_chi_tiet per salvare height_field e width_field.

Come posso impostare direttamente questi valori senza aggiungere nuovi campi nella tabella?

risposta

17

height_field rappresenta una proprietà del modello utilizzata per memorizzare l'altezza.

class Anh_chi_tiet(models.Model): 

    url_height=models.PositiveIntegerField() 
    url_width=models.PositiveIntegerField() 
    url = models.ImageField(upload_to='images', height_field='url_height', width_field='url_width') 

Avviso height_field='url_height'

+1

Ci sono un modo per impostare height_field e width_field direttamente senza creare url_height e campi url_width? – ronin1184

5

Penso che si sta fraintendimento quello che il height_field e gli attributi width_field sono per.

Il campo altezza non viene utilizzato per modificare l'altezza. È utilizzato per registrare l'altezza dello già.

questo modo si può fare qualcosa di simile

<img src="..." height={{my_instance.my_height_field}} /> 

senza dover leggere il file.

Se si sta tentando di ridimensionare tutte le immagini caricate tramite un ImageField, controllare qui: Image resizing with django?

Problemi correlati