Django prepopulated_fields 类似方法

发布于 2024-11-29 08:43:57 字数 205 浏览 0 评论 0原文

请原谅我对 Django 的天真。

我想创建自己的方法,其工作方式与我的自定义管理页面的 prepopulated_fields 非常相似。基本上,当您将图像的 url 放入一个字段时,我想通过 javascript 使用图像的名称、高度和宽度填充另一个字段。

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

Please forgive my naiveté with Django.

I want to create my own method which works much like prepopulated_fields for my custom admin page. Basically, when you put the url of an image in one field, I'd like to populate another field with the name of the image, height and width via javascript.

What would be the best approach? Just override the change_form.html and include my own JS lib? Write a custom widget?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

箹锭⒈辈孓 2024-12-06 08:43:57

如果出于某种原因你想显示图像的属性,那么使用 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)

祝你好运!

Using Javascript would be a probable move, if for some reason you want to show the attributes of the image.

See Javascript - Get Image height for an example of doing this.

If there's no need to show it at the form level but to simply populate the usually prefer to do this at the model level, such as

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)

Good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文