关键词:
【中文标题】ModelForm (Django) 中 FileField 上传的进度条【英文标题】:Progress bar for FileField upload in a ModelForm (Django) 【发布时间】:2015-03-16 20:29:36 【问题描述】:我正在寻找一些实现文件上传进度条的指针,该进度条提供有关 ModelForm 内 FileField 上传当前状态的反馈。
我的 ModelForm 有很多字段(不仅仅是 FileField),我想用进度条显示进度的实时反馈。
谢谢。
【问题讨论】:
【参考方案1】:这是我的问题解决方案:django-smartfields,这个应用程序可以负责报告进度、转换图像或视频、清理旧文件等等。它对进度报告有一些要求:
django-crispy-forms jQuery plupload bootstrap3 bootbox我现在正在为 django-smartfields 编写文档,但该应用程序的这一部分仍未记录,但这里是您将如何使用它。
from django.db import models
from django.conf import settings
from smartfields import fields
class FileModel(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, editable=False)
file = fields.FileField(uploadTo='files')
# other fields ....
parent_field_name = 'user'
def has_upload_permission(self, user, field_name=None):
return user == self.user
现在在forms.py
:
from django import forms
from myapp.models import FileModel
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout
from smartfields.crispy.layout import FileField
class FileForm(forms.ModelForm):
class Meta:
model = FileModel
fields = ('file', other fields...)
@property
def file_upload_url(self):
return reverse("smartfields:upload", kwargs=
'app_label': 'test_app',
'model': FileModel.__name__,
'field_name': 'file',
'pk': self.instance.pk,
'parent_field_name': 'user'
'parent_pk': self.instance.user.pk
)
def __init__(self, *args, **kwargs):
super(FileForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_tag = False
self.helper.layout = Layout(
FileField('file', plupload_options=
'url': self.file_upload_url,
'filters':
'max_file_size': "20mb",
'mime_types': ['title': "Documents",
'extensions': "pdf,doc"]
))
除了'file_form'
应该在上下文中之外,不需要在views.py 中做任何特别的事情。确保smartfields
在INSTALLED_APPS
和urls
中包含url(r'^smartfields/', include('smartfields.urls', namespace='smartfields')),
,或者您可以通过扩展smartfields.views.FielUpload
创建自定义上传视图。
在模板中:
% load static crispy_forms_tags %
<link rel="stylesheet" href="% static 'bootstrap3/css/bootstrap.min.css' %">
<link rel="stylesheet" href="% static 'bootstrap3/css/bootstrap-theme.min.css' %">
<link rel="stylesheet" href="% static 'css/smartfields.css' %">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="% static 'bootstrap3/js/bootstrap.min.js' %"></script>
<script type="text/javascript" src="% static 'plupload/js/plupload.full.min.js' %"></script>
<script type="text/javascript" src="% static 'js/bootbox.min.js' %"></script>
<script type="text/javascript" src="% static 'js/smartfields.js' %"></script>
<form method="POST">
% crispy file_form %
<input class="btn btn-default" type="submit" name="btn_save" value="Save">
</form>
如果您有任何问题或由于某种原因它不起作用,请告诉我。确保您使用的是 github 上的版本,pypi 上的 javascript 文件已过时。
【讨论】:
有没有使用智能字段实现视频压缩的例子? @eol 当然,这是我添加到文档中的一个简单示例:django-smartfields.readthedocs.org/en/latest/processors.html 你就是男人。这也适用于 s3 的 boto/storages 吗?目前是否可以在模块内以多种方式压缩一个字段(成多个文件),同时只上传一次? 它被实现为独立于文件存储后端,它还通过机架空间存储进行了测试,因此它也应该与 s3 一起使用,如果不是,请告诉我。添加多种格式进行转换非常容易,您只需在字段的依赖项列表中添加另一个 FileDependency 即可。 干杯。将及时向大家发布。感谢您制作了一款出色的应用。ModelForm (Django) 中 FileField 上传的进度条
】ModelForm(Django)中FileField上传的进度条【英文标题】:ProgressbarforFileFielduploadinaModelForm(Django)【发布时间】:2015-03-1620:29:36【问题描述】:我正在寻找一些实现文件上传进度条的指针,该进度条提供有关ModelForm内FileField上传当前状... 查看详情
ModelForm (Django) 中 FileField 上传的进度条
】ModelForm(Django)中FileField上传的进度条【英文标题】:ProgressbarforFileFielduploadinaModelForm(Django)【发布时间】:2015-03-1620:29:36【问题描述】:我正在寻找一些实现文件上传进度条的指针,该进度条提供有关ModelForm内FileField上传当前状... 查看详情
在 Django 中序列化 ModelForm 对象的最佳方法是啥?
】在Django中序列化ModelForm对象的最佳方法是啥?【英文标题】:WhatisthebestwaytoserializeaModelFormobjectinDjango?在Django中序列化ModelForm对象的最佳方法是什么?【发布时间】:2010-09-2700:31:21【问题描述】:我正在为我当前的项目使用Djang... 查看详情
ImageField() 不在 ModelForm 中保存图像 - Django/Python
】ImageField()不在ModelForm中保存图像-Django/Python【英文标题】:ImageField()notsavingimagesinModelForm-Django/Python【发布时间】:2015-05-2403:08:21【问题描述】:当我尝试从我的表单上传图片时,一切都在处理,但没有保存图片。有人知道为什... 查看详情
将字段添加到模型中但不在表单中的 django ModelForm
】将字段添加到模型中但不在表单中的djangoModelForm【英文标题】:AddfieldtodjangoModelFormthatareinthemodelbutnotintheform【发布时间】:2015-08-3111:41:06【问题描述】:我有一个django模型和一个ModelForm。该模型有大约10个字段,但我只想用Mode... 查看详情
从 Django ModelForm 中动态排除字段
】从DjangoModelForm中动态排除字段【英文标题】:DynamicallyexcludingfieldfromDjangoModelForm【发布时间】:2018-11-0807:38:43【问题描述】:我想以编程方式排除表单中的一个字段。目前我有这个:classRandomForm(BaseForm):def__init__(self,*args,**kwargs)... 查看详情
如何在 Modelform 的网格中呈现 Django CheckoxInput?
】如何在Modelform的网格中呈现DjangoCheckoxInput?【英文标题】:HowtorenderDjangoCheckoxInputinagridfromModelform?【发布时间】:2022-01-0317:05:13【问题描述】:models.pyclassMyModel(Model):author=ForeignKey(settings.AUTH_USER_MODEL,on_delete=CASCADE)tit 查看详情
如何在 Django ModelForm 中获取实例
】如何在DjangoModelForm中获取实例【英文标题】:HowgetInstanceinDjangoModelForm【发布时间】:2017-08-1712:27:14【问题描述】:我正在尝试使用基于类的通用视图UpdateView更新Django中的模型。但是我遇到了一些实例问题。当我单击提交按钮... 查看详情
django之modelform详解(代码片段)
ModelForm是Django中编写基于Model定制表单的方法,可以提高Model复用性。 使用时Django会根据 django.db.models.Field (用于数据库衔接)自动转化为 django.forms.Field (用于表单前端展示、后端验证)。 编辑数据:如果... 查看详情
django - 使用 FormView 和 ModelForm 更新模型
】django-使用FormView和ModelForm更新模型【英文标题】:django-updatemodelwithFormViewandModelForm【发布时间】:2014-03-0314:59:37【问题描述】:我不知道如何在FormView中使用ModelForm来更新已经存在的实例??此URL上的POST表单:r\'/object/(?P<... 查看详情
django之modelform组件(代码片段)
ModelForm组件是django中一个非常强大的组件,其功能主要有一校验字段 ModelForm组件的主要格式为:继承组件fromdjangoimportformsclassUserModelForm(forms.ModelForm):指定表model=models.UserInfo指定要显示的字段fields=‘__all__‘#显示所有,常... 查看详情
如何使用 Ajax 在 Django 中更新 modelForm
】如何使用Ajax在Django中更新modelForm【英文标题】:HowtoupdateamodelForminDjangowithAjax【发布时间】:2015-12-2216:46:11【问题描述】:我想用Ajax更新一个模板。我的问题是:我在表单的列表中选择了一个客户,然后在第二个列表中的同一... 查看详情
使用 Django,如何在模板中动态设置 ModelForm 字段值?
】使用Django,如何在模板中动态设置ModelForm字段值?【英文标题】:UsingDjango,howdoIsetaModelFormfieldvaluedynamicallyinthetemplate?【发布时间】:2021-01-2722:31:43【问题描述】:我正在尝试利用复选框字段为用户选择的收藏夹创建模型实例。... 查看详情
form和modelform
...中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm关于django的表单系统,主要分两种基于django.forms.Form:所有表单类的父类基于django.forms.ModelForm:可以和模型类绑定的Formform实例#app01/views.pyfromdjango.shortcutsimportrender,HttpRe 查看详情
Django中的ModelForm无法接收数据
】Django中的ModelForm无法接收数据【英文标题】:ModelForminDjangofailstoreceivedata【发布时间】:2016-11-1520:20:58【问题描述】:我有一个ModelForm,所有字段都是我想要的。当我在HTML中呈现此表单时,我提供了这些字段中所需的所有数据... 查看详情
你能从它的 ModelForm 中访问一个 Django 模型的“属性”吗?
】你能从它的ModelForm中访问一个Django模型的“属性”吗?【英文标题】:CanyouaccessaDjangoModel"property"fromit\'sModelForm?【发布时间】:2011-04-1823:58:02【问题描述】:我有一个带有非模型字段属性的Django模型类,例如:def_get(self... 查看详情
如何使用 Modelform 和 jquery 在 django 中获取相互依赖的下拉菜单?
】如何使用Modelform和jquery在django中获取相互依赖的下拉菜单?【英文标题】:HowtogetInterdependentdropdownsindjangousingModelformandjquery?【发布时间】:2012-12-1618:23:01【问题描述】:我是django和jquery的新手。我正在开发一个基于django的应用... 查看详情
django组件-modelform(代码片段)
ModelForm组件功能就是把model和form组合起来.首先导入ModelFormfromdjango.formsimportModelForm在视图函数中,定义一个类,比如就叫StudentList,这个类要继承ModelForm,在这个类中再写一个原类Meta(规定写法,并注意首字母是大写的)在这个原类中,有... 查看详情