2011-08-12 12 views
0

請原諒我的天真與Django。Django prepopulated_fields like方法

我想創建我自己的方法,它非常像我的自定義管理頁面的prepopulated_fields。基本上,當你把一個圖像的URL放在一個字段中時,我想通過javascript填充另一個字段的圖像名稱,高度和寬度。

什麼是最好的方法?只需重寫change_form.html幷包含我自己的JS庫?寫一個自定義小部件?

回答

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) 

祝你好運!

+0

太棒了。這給了我一個好主意。在UI中填充沒有意義,服務器端要容易得多。謝謝! – Jiyosub