Django 预填充字段像方法一样

0 投票
1 回答
1354 浏览
提问于 2025-04-16 23:27

请原谅我对Django的无知。

我想创建一个自己的方法,功能类似于Django中预填充字段的功能,用在我的自定义管理页面上。简单来说,就是当你在一个字段里输入图片的URL时,我希望通过JavaScript自动填充另一个字段,内容包括图片的名称、高度和宽度。

这样做的最佳方法是什么呢?是直接覆盖change_form.html文件,然后加入我自己的JavaScript库?还是写一个自定义的控件?

1 个回答

0

如果你想显示图片的属性,使用Javascript可能是个不错的选择。

可以参考这个链接:Javascript - 获取图片高度,里面有相关的例子。

如果你不需要在表单中显示这些属性,而只是想填充一些数据,通常建议在模型层面上处理,比如:

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)

祝你好运!

撰写回答