Python django自定义注释';s图像字段不工作
我正在对我的django应用程序执行django contrib评论的自定义评论应用程序。最后,我终于实现了我的评论应用程序,有图像字段,它显示在模板当然。但问题是,当我试图用image发表评论时,它不会保存图像文件,并显示为空(此字段是必需的)。有人能帮我弄清楚吗。下面是一些代码片段 models.pyPython django自定义注释';s图像字段不工作,python,django,image,comments,Python,Django,Image,Comments,我正在对我的django应用程序执行django contrib评论的自定义评论应用程序。最后,我终于实现了我的评论应用程序,有图像字段,它显示在模板当然。但问题是,当我试图用image发表评论时,它不会保存图像文件,并显示为空(此字段是必需的)。有人能帮我弄清楚吗。下面是一些代码片段 models.py class CommentWithPic(Comment): image = models.ImageField(upload_to="comments/%Y/%m/%d/", nul
class CommentWithPic(Comment):
image = models.ImageField(upload_to="comments/%Y/%m/%d/", null=True, blank=True)
forms.py
class CommentFormWithPic(CommentForm):
image = forms.ImageField()
def get_comment_model(self):
return CommentWithPic
def get_comment_create_data(self):
data = super(CommentFormWithPic, self).get_comment_create_data()
data['image'] = self.cleaned_data['image']
return data
用_comment.html发布_
{% render_comment_list for adi %}
{% get_comment_form for adi as form %}
<form action="{% comment_form_target %}" method="post">
{% csrf_token %}
{% for field in form %}
{% if field.is_hidden %}
{{ field }}
{% else %}
{% if field.errors %}{{ field.errors }}{% endif %}
{{ field.label }}
{{ field }}
{% endif %}
{% endfor %}
<input type="hidden" value="{% url 'ad' adi.id %}"/>
<input type="submit" value="comment"/>
</form>
{adi%的%render\u comment\u列表}
{%get_comment_表单作为adi的表单%}
{%csrf_令牌%}
{%形式的字段为%}
{%if field.is_hidden%}
{{field}}
{%else%}
{%if-field.errors%}{{field.errors}{%endif%}
{{field.label}
{{field}}
{%endif%}
{%endfor%}
在处理'ImageField'时,您需要像下面那样声明表单(注意enctype
属性)
<form enctype="multipart/form-data" action="{% comment_form_target %}" method="post">\
CommentForm
aModelForm
?您是否尝试过image=forms.ImageField(required=False)
?@TimmyO'Mahony,是的,我尝试过required=False,如果是,则发布,但没有图像文件。而且,这是一种评论形式。正如django Docso中所说的,你想做什么?您说过,如果您没有包含required=False
,则它将发布评论页面并抱怨图像字段是必需的(这是正确的功能),但如果您确实包含required=False
,则它将发布没有图像的评论(这也是正确的功能)我想做的就是用图片发表评论。但当我试着这么做的时候,似乎它并没有发布那个way@TimmyO'Mahony嗨,我更新了问题好的,我刚刚添加了enctype=“multipart/form data”
,并且没有添加required=False
,但仍然相同,它没有发布图片实际上除了图片字段之外,所有文本字段都发布了。有人能帮我吗
class CommentFormWithPic(CommentForm):
image = forms.ImageField(required=False)
...