我有一个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函数吗?
答案 0 :(得分:0)
确实url
函数和url
属性之间存在冲突。
我们已将函数更改为build_url
而不是url
。
此外,在调用CloudinaryImage的构造函数时,可以将转换参数指定为url_options
参数。然后,您可以使用url
属性获取完整的Cloudinary URL。
此修补程序可在最新版本的Python库中找到:http://pypi.python.org/pypi/cloudinary