2011-12-04 10 views
8

Mam modeluKorzystanie height_field i width_field atrybut w ImageField 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') 

I zawsze otrzymują ten błąd:

'Anh_chi_tiet' object has no attribute '100' 

Wydaje Django wymaga obu pól w tej samej tabeli Anh_chi_tiet zapisać height_field i width_field.

Jak mogę bezpośrednio ustawić te wartości bez dołączania nowych pól do mojej tabeli?

Odpowiedz

17

height_field reprezentuje właściwość modelu używaną do przechowywania wysokości.

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') 

Wskazówka height_field='url_height'

+1

Czy istnieje jakiś sposób, aby ustawić height_field i width_field bezpośrednio bez tworzenia url_height i pola url_width? – ronin1184

5

Myślę, że nieporozumienie co height_field i width_field atrybuty są za.

Pole height_field nie jest używane do zmiany wartości . Służy do rejestrowania, jaka jest wysokość już.

ten sposób można coś zrobić jak

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

bez konieczności odczytu pliku.

Jeśli próbujesz zmienić rozmiar wszystkich zdjęć przesłanych za pośrednictwem ImageField sprawdzić tutaj: Image resizing with django?

Powiązane problemy