在Django的ImageField中使用height_field和width_field属性

时间:2011-12-04 05:49:14

标签: django django-models

我有一个模特

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

我总是收到这个错误:

'Anh_chi_tiet' object has no attribute '100'

似乎Django需要同一个表Anh_chi_tiet中的两个字段来保存height_field和width_field。

如何在不在表格中添加新字段的情况下直接设置这些值?

2 个答案:

答案 0 :(得分:19)

height_field表示模型的属性,用于存储高度。

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

注意height_field='url_height'

答案 1 :(得分:5)

我认为你误解了height_field和width_field属性的用途。

height_field不用于更改高度。它用于记录已经是的高度。

通过这种方式,您可以执行类似

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

无需阅读文件。

如果您要调整通过ImageField上传的所有图片的尺寸,请点击此处: Image resizing with django?