【问题标题】:Django Document upload issue does not show "no file selected"Django 文档上传问题未显示“未选择文件”
【发布时间】:2017-05-31 18:18:10
【问题描述】:

我有以下表格:

    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Upload</button>
    </form>

这会产生一个表单,它会产生(在 [] 括号中表示一个按钮):

**Document:**
[Choose File] no file selected
[Upload]

当我使用以下表格时:

        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
            {{ form.document }}
            <button type="submit">Upload</button>
        </form>

我没有在 Safari 中看到“未选择文件”部分,但我在 chrome 中看到了。是否有某种“form.something”可以让我在任何浏览器中显示它。

表格如下:

class DocumentForm(forms.ModelForm):
    class Meta:
        model = Document
        fields = ('document', )

型号如下:

class Document(models.Model):
    user = models.ForeignKey(User)
    document = models.ImageField(upload_to=user_directory_path)
    uploaded_at = models.DateTimeField(auto_now_add=True)

手动示例的 HTML 输出(在 chrome 中):

    <form method="post" enctype="multipart/form-data">
        <input type='hidden' name='csrfmiddlewaretoken' value='2ZMTQTumTh5DS4nwVvAZv3IUSpM2o5LB' />
        <input id="id_document" name="document" type="file" />
        Document

        <button type="submit">Upload</button>
    </form>

手动示例的 HTML 输出(在 safari 中):

    <form method="post" enctype="multipart/form-data">
        <input type='hidden' name='csrfmiddlewaretoken' value='DTLKigyikubFrJqrh4AHR61Lmkyutrsw' />
        <input id="id_document" name="document" type="file" />
        Document

        <button type="submit">Upload</button>
    </form>

自动示例的 HTML 输出(在 safari 中):

文档:

上传

非常感谢,艾伦。

【问题讨论】:

  • 什么是form.document
  • 添加了我应该解释的表格和模型。非常感谢您提供信息。
  • 渲染出来的html长什么样子?
  • 添加不同的html输出,希望对您有所帮助:)
  • 你能提供 chrome 和 safari 的结果截图吗?您使用什么版本的 Safari?

标签: django


【解决方案1】:

如果没有像这样添加,您是否将 (request.FILES) 包含在您的 views.py 文件中。

def view(request):
   if request.method == 'POST':
       form = DocumentForm(request.POST,request.FILES)
       if form.is_valid():

       #Then Save your Form

【讨论】:

  • 它已包含在内,但可能不适合其他人,因此会接受答案。有趣的是,我的修复是一个很好的旧重启!
猜你喜欢
  • 1970-01-01
  • 2021-10-31
  • 2012-12-30
  • 2014-08-30
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
相关资源
最近更新 更多