【发布时间】:2012-09-03 22:41:17
【问题描述】:
我有一个Django 表单,它显示ClearableFileInput 对应CloudinaryImage(来自Cloudinary)。一切都很好,除了当我显示表单字段时,我在锚元素中得到一个损坏的 href:
Currently: <a href="<bound method CloudinaryImage.url of <cloudinary.CloudinaryImage object at 0x10b3f4ad0>>"><cloudinary.CloudinaryImage object at 0x10b3f4ad0></a> <input type="checkbox" name="logo-clear" id="logo-clear_id" /> <label for="logo-clear_id">Clear</label><br />Change: <input id="id_logo" type="file" name="logo" class="span4" />
这是我正在使用的模板代码:
<div class="fieldWrapper">
<label for="id_logo"><h3>{{ form.logo.label }}:</h3></label>
{{ form.logo|add_class:"span4" }}
<p>{{ form.logo.help_text }}</p>
</div>
add_class 部分来自django-widget-tweaks。我删除了 add_class 部分,输出没有变化。
这是我的表单定义:
class OrganizationFormTheme(forms.ModelForm):
pass
class Meta:
fields = ('logo',)
model = Organization
看起来 Django 在使用 CloudinaryImage 的 url 函数时遇到了问题。我怀疑它正在寻找一个简单的属性而不是一个函数。
关于如何处理这个问题有什么建议吗?我应该继承 CloudinaryImage 并以某种方式重写 url 函数吗?
【问题讨论】:
-
你能显示你的表单定义吗?
-
我决定在我的模板中手动构建表单小部件。如果我不必这样做就好了。
-
我遇到了类似的错误。你引用的是方法,而不是它的输出。
-
完全正确——只有 Django 的模板代码 {{ form.logo }} 引用了该方法,而不是它的输出。有办法改变吗?
标签: django django-forms django-widget cloudinary