Django prepopulated_fields就像方法一样

时间:2011-08-12 06:45:42

标签: python django django-admin django-forms

请原谅我对Django的天真。

我想创建自己的方法,就像我的自定义管理页面的prepopulated_fields一样。基本上,当你将图像的url放在一个字段中时,我想通过javascript填充另一个带有图像名称,高度和宽度的字段。

最好的方法是什么?只需覆盖change_form.html并包含我自己的JS库?编写自定义小部件?

1 个答案:

答案 0 :(得分:0)

如果出于某种原因想要显示图像的属性,使用Javascript将是一个可能的举动。

有关执行此操作的示例,请参阅Javascript - Get Image height

如果没有必要在表单级别显示它,只需填充通常喜欢在模型级别执行此操作,例如

from PIL import Image
import StringIO
import urllib2

class MyModel(models.Model):
    # ... fields 1,2,3 etc, and assuming the url field is called image_url

    def pre_save():
        # obtain attributes of image from url field
        # save it to various fields
        img = urllib2.urlopen(self.image_url).read()
        im = Image.open(StringIO.StringIO(img))
        self.image_width, self.image_height = im.size

    def save(self, *args, **kwargs):
        self.pre_save()
        super(MyModel, self).save(*args, **kwargs)
祝你好运!