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

Django:用HTML扩展管理变更表单中某个字段的正确方法?

  •  0
  • initall  · 技术社区  · 14 年前

    class Foo(models.Model):
        imagefile = models.ImageField('File', upload_to='foo/%Y/%m%/%d/')
    

    Django在第一次上传后添加了一个file类型的输入标记,让我可以更改它,并添加了一个指向图像的链接来查看它。

    我希望这个原始的字段特定(HTML)代码保持原样(决不是自己手动创建),但也要添加其他HTML/JS代码,比如说包括缩略图预览或添加一些AJAX内容。我也可以想象其他领域的一些其他用例。

    实现这样的事情的正确方法是什么?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Daniel Roseman    14 年前

    您需要编写一个自定义小部件。看看 django.forms.widgets FileInput 小部件,您可以将其子类化并覆盖 render 必要时使用方法。然后,您只需要在管理表单中为您的文件字段分配该小部件。