【问题标题】:Image upload field works in django admin but not working in template图片上传字段在 django admin 中有效,但在模板中无效
【发布时间】:2018-02-05 08:36:55
【问题描述】:

您好,我创建了一个通用表单来插入数据,一切正常,但图像无法以模板形式上传,但是当我在管理员中上传图像时,它可以完美运行,并且图像显示在模板页面上。

这是我的代码:

views.py:

class ArticleCreate(CreateView):
model = article
fields = ['title', 'cat', 'img', 'disc', 'tags']

models.py:

class article(models.Model):
   title = models.CharField(max_length=250)
   disc = models.TextField(verbose_name="Discription")
   cat = models.ForeignKey(category, verbose_name="Category")
   tags = models.ManyToManyField(Tag, blank=True)
   img = models.ImageField(blank=True, verbose_name='Image')

Settings.py:

STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

模板页面:

{% for list in data %}
 {{ list.title }}
{% if list.img %}
  {{ list.img.url }}
{% endif %}
{% endfor %}

如何上传通用格式的图片?

【问题讨论】:

  • 您的表单模板中有什么?
  • 表单模板:{% for field in form %} {{ field.errors }} {{ field.label_tag }} {{ field }} {% endfor %}
  • 这不是用表单标签包裹的吗?
  • 在表单中正确包装字段后查看此链接。 stackoverflow.com/a/32429092/5189811

标签: python django forms generics django-admin


【解决方案1】:

在模板中添加enctype="multipart/form-data" <form> 它将允许从模板上传图片。

模板形式:

 <form method="post" enctype="multipart/form-data" >

【讨论】:

    【解决方案2】:

    一个更普遍的错误是我们可以忘记视图中的 request.FILES 属性:例如

    form = someModelForm(request.POST,request.FILES)
    

    【讨论】:

      【解决方案3】:

      试试这个:

      <img src="{% if list.img %}{{ list.img.url }}">
      

      【讨论】:

        猜你喜欢
        • 2012-05-28
        • 2012-05-26
        • 2017-12-10
        • 1970-01-01
        • 1970-01-01
        • 2017-08-02
        • 2018-10-07
        • 1970-01-01
        • 2019-01-06
        相关资源
        最近更新 更多