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

发布于 2024-09-09 10:48:52 字数 366 浏览 2 评论 0原文

假设我有一个带有基于 ImageField 类的字段的模型。

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

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

我想要这个原始的特定于字段的 (HTML) 代码按原样(并且绝不是自己手动创建它),但还添加其他 HTML/JS 代码,比如包含缩略图预览或添加一些 AJAX 内容。我也可以想象其他领域的一些其他用例。

实现类似功能的正确(例如:简单/不引人注目)方法是什么?

Let's say I have a model with a field based on the ImageField class.

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

Django adds - after first upload - an input tag of type file to let me change it and a link to the image to view it.

I want this original field specific (HTML) code as is (and by no means create it myself manually) but also add other HTML/JS code, say to include a thumbnail-preview or add some AJAX-stuff. I can image a few other use cases for other fields, too.

What's the correct (say: easy/unobtrusive) way to implement something like that?

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

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

发布评论

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

评论(1

失与倦" 2024-09-16 10:48:52

您需要编写一个自定义小部件。查看 django.forms.widgets 来获取现有 FileInput 小部件的代码,您可以在必要时对其进行子类化并重写 render 方法。然后,您只需在管理表单中为文件字段分配该小部件即可。

You need to write a custom widget. Look at django.forms.widgets for the code of the existing FileInput widget, which you can subclass and override the render method where necessary. You'll then just need to assign that widget for your file field in your admin form.

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