Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django从模板上传_Django_Django Templates - Fatal编程技术网

Django从模板上传

Django从模板上传,django,django-templates,Django,Django Templates,我正在考虑从html模板上传一个文件。我看过大量的文档,包括文件字段、图像字段等。但是,理想情况下,我不想重写我的代码。 目前,我在我的模板上有一个简单的表单,我想在那里有一个上传功能,在那里,图像将被上传并存储到我的应用程序媒体文件夹中,如果可能的话,还可以添加到数据库中 我知道我可能走了一条漫长而复杂的道路,但如果有人能帮助我,那就太好了 html.py: 我不明白你为什么一直在这里谈论模板,模板与任何事情都没有任何关系。与所有逻辑一样,上传的处理在视图中完成 您所需的所有信息仍在数据库中。

我正在考虑从html模板上传一个文件。我看过大量的文档,包括文件字段、图像字段等。但是,理想情况下,我不想重写我的代码。 目前,我在我的模板上有一个简单的表单,我想在那里有一个上传功能,在那里,图像将被上传并存储到我的应用程序媒体文件夹中,如果可能的话,还可以添加到数据库中

我知道我可能走了一条漫长而复杂的道路,但如果有人能帮助我,那就太好了

html.py:


我不明白你为什么一直在这里谈论模板,模板与任何事情都没有任何关系。与所有逻辑一样,上传的处理在视图中完成

您所需的所有信息仍在数据库中。您可以忽略关于Django表单的部分并检查它是否有效,只需将file对象传递给upload处理函数,该页面也对此进行了解释

但是,您需要更改模板,以便表单元素使用POST而不是GET(这几乎肯定是个好主意),并使用
enctype=“multipart/form data”
,如该页所述


最后,我真的建议您重写代码以使用ModelForms。它不仅可以使代码更简单,还可以验证条目,确保所有必需的字段都存在并且类型正确,等等——以及输出有效的HTML(例如,您在
标签中缺少
属性的
).

我不明白你为什么一直在这里谈论模板,模板与任何东西都没有任何关系。与所有逻辑一样,上传的处理在视图中完成

您所需的所有信息仍在数据库中。您可以忽略关于Django表单的部分并检查它是否有效,只需将file对象传递给upload处理函数,该页面也对此进行了解释

但是,您需要更改模板,以便表单元素使用POST而不是GET(这几乎肯定是个好主意),并使用
enctype=“multipart/form data”
,如该页所述


最后,我真的建议您重写代码以使用ModelForms。它不仅可以使代码更简单,还可以验证条目,以确保所有必填字段都存在并且类型正确,等等,还可以输出有效的HTML(例如,您的
标签中的
属性缺少

我想您应该重写代码。因为您无法通过GET请求上载文件。然后,我建议您使用ImageField,因为它会生成您描述的所有行为。如果您的表单仅设计用于在数据库中创建对象,我建议您使用ModelForm,谢谢您的建议。我完全不知道modelforms。我读过几本书,也听过很多教程,这是我第一次看到它们。谢谢:我认为你应该重写你的代码。因为您无法通过GET请求上载文件。然后,我建议您使用ImageField,因为它会生成您描述的所有行为。如果您的表单仅设计用于在数据库中创建对象,我建议您使用ModelForm,谢谢您的建议。我完全不知道modelforms。我读过几本书,也听过很多教程,这是我第一次看到它们。谢谢:谢谢。我现在已经实现了使用ModelForms的代码。谢谢你,谢谢。我现在已经实现了使用ModelForms的代码。非常感谢。
<div class="row">                 <div class="span1 offset5">                 </bR>
              <form class="form-horizontal" method="get" action="/add/submit" value="add">  
              <fieldset>              <div class="input">
              <div class="inline-inputs">
              <label>Ride Name:</label><input type="text" name="name">
              <label>Type:</label><input type="text" name="type">
              <label>Theme:</label><input type="text" name="theme">
              <label>Description:</label><textarea rows="5" name ="description"></textarea>
              <label>Author:</label><input type="text" name="author">

              <label>Date Released:</label>
              <div id="datetimepicker" class="input-append date">
                  <input type="text" name="date"></input>
                  <span class="add-on">
                  <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
                  </span>
              </div>                      
              <label>Thread:</label><input type="text" name="thread">
              <label>Video</label><textarea rows="2" name ="video"></textarea>


                  <br><br>
                  <input class="btn btn-primary" type="submit" value="Add" />
                  </div>              </div>                      

               </fieldset> 
              </form>  
              </div>  </div>
def Ride_Add_Submit(request):
    name = request.GET['name']
    type = request.GET['type']
    theme = request.GET['theme']
    description = request.GET['description']
    author = request.GET['author']
    releasedate=request.GET['date']
    video=request.GET['video']
    thread=request.GET['thread']


    entry = RollerCoaster(name=name, type=type, theme=theme, description=description, releasedate=releasedate, author=author, video=video, thread=thread)
    entry.save()
    return TemplateResponse(request, 'Ride_Add.html')