代码之家  ›  专栏  ›  技术社区  ›  Wes

google app engine django model form无法获取blobproperty

  •  2
  • Wes  · 技术社区  · 16 年前

    我有以下型号:

    class Image(db.Model):
        auction = db.ReferenceProperty(Auction)
        image = db.BlobProperty()
        thumb = db.BlobProperty()
        caption = db.StringProperty()
        item_to_tag = db.StringProperty()
    

    以及以下形式:

    class ImageForm(djangoforms.ModelForm):
        class Meta:
            model = Image
    

    当我调用imageForm()时,只创建非blob字段,如下所示:

    <tr><th><label for="id_auction">Auction:</label></th><td><select name="auction" id="id_auction">
    <option value="" selected="selected">---------</option>
    <option value="ahRoYXJ0bWFuYXVjdGlvbmVlcmluZ3INCxIHQXVjdGlvbhgKDA">2010-06-19 11:00:00</option>
    </select></td></tr>
    <tr><th><label for="id_caption">Caption:</label></th><td><input type="text" name="caption" id="id_caption" /></td></tr>
    <tr><th><label for="id_item_to_tag">Item to tag:</label></th><td><input type="text" name="item_to_tag" id="id_item_to_tag" /></td></tr>
    

    我希望BLOB字段也包括在表单中(以及文件输入)。我做错什么了?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Wes    15 年前

    我认为我的问题在于Django不支持Blob,所以在生成Django表单时,BlobProperty被简单地忽略了。

        2
  •  0
  •   Tom van Enckevort    15 年前

    你可以使用 widgets 属性定义用于Blob属性的字段类型:

    class ImageForm(djangoforms.ModelForm):
    class Meta:
        model = Image
        widgets = { 
            'image': djangoforms.FileInput(),
            'thumb': djangoforms.FileInput(),
        }