django为crud操作实现可手持的电子表格。
django-funky-sheets的Python项目详细描述
django为crud操作实现可手持的电子表格。
现场演示
安装
安装django-funky-sheets:
$ pip install django-funky-sheets
将funky_sheets添加到已安装的应用程序:
# settings.py INSTALLED_APPS = [ ... 'funky_sheets', ... ]
快速启动
网址
定义创建和更新视图的URL。
# urls.pyfromdjango.urlsimportpathfrom.importviewsurlpatterns=[path('',views.index,name='index'),path('create/',views.CreateMovieView.as_view(),name='create'),path('update/',views.UpdateMovieView.as_view(),name='update')]
视图
定义从HotView继承的创建和更新视图,并基于选定的模型字段呈现可手持的电子表格。
# views.pyfromdjango.formsimportCheckboxSelectMultiple,CheckboxInput,DateInputfromdjango.urlsimportreverse_lazyfromfunky_sheets.formsetsimportHotViewfrom.modelsimportMovieclassCreateMovieView(HotView):# Define model to be used by the viewmodel=Movie# Define templatetemplate_name='examples/create.html'# Define prefix for the formset which is constructed from Handsontable spreadsheet on submissionprefix='table'# Define success URLsuccess_url=reverse_lazy('update')# Define fields to be included as columns into the Handsontable spreadsheetfields=('id','title','director','release_date','parents_guide','imdb_rating','genre','imdb_link',)# Define extra formset factory kwargsfactory_kwargs={'widgets':{'release_date':DateInput(attrs={'type':'date'}),'genre':CheckboxSelectMultiple(),'parents_guide':CheckboxInput(),}}# Define Handsontable settings as defined in Handsontable docshot_settings={'contextMenu':'true','autoWrapRow':'true','rowHeaders':'true','contextMenu':'true','search':'true'}classUpdateMovieView(CreateMovieView):template_name='examples/update.html'# Define 'update' actionaction='update'# Define 'update' buttonbutton_text='Update'
模板
定义包含hot_template的模板,以便在其中呈现可手持的电子表格。
examples/create.html ... {%includehot_template%} ... examples/update.html ... {%includehot_template%} ...
贡献
这是一个开源项目,任何贡献都是值得赞赏的。
许可证
这个项目是由麻省理工学院授权的。