Django prepopulated_fields, как метод - PullRequest
       22

Django prepopulated_fields, как метод

0 голосов
/ 12 августа 2011

Пожалуйста, прости мою наивность с Джанго.

Я хочу создать свой собственный метод, который будет очень похож на prepopulated_fields для моей пользовательской страницы администратора. По сути, когда вы помещаете URL-адрес изображения в одно поле, я бы хотел заполнить другое поле с именем изображения, высотой и шириной с помощью JavaScript.

Какой будет лучший подход? Просто переопределить change_form.html и включить мою собственную библиотеку JS? Написать свой виджет?

1 Ответ

0 голосов
/ 12 августа 2011

Использование 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)

Удачи!

...