一个简单的django应用程序,用于与fieldbook.com API交互。
django-fieldbook的Python项目详细描述
django fieldbook是一个可重用的django应用程序,用于与Fieldbookapi交互。 Fieldbook是创建自定义信息工具的最快和最简单的方法。 开始使用它就像电子表格一样简单,但是它提供了 数据库驱动的业务应用程序。团队使用它来跟踪项目和客户, 实现数据收集工作流,并创建自定义内容管理系统。
概述
Django Fieldbook与Django 1.8/1.9/1.10/1.11一起工作。 它基于一个基本的python 3客户机fieldbook-py。
快速启动
在python环境中设置django fieldbook应用程序:
$ pip install django-fieldbook
迁移Fieldbook应用程序以创建用户模型:
$ migrate fieldbook
将“fieldbook”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS = ( ..., 'fieldbook', )
使用不同类型的视图(在view.py文件中或如果您希望在nameview.py文件中)编写视图:
- A view to get the list of sheet names on the book extending the FieldbookSheetIndexView:
class IndexView(FieldbookSheetIndexView): """Index class based view. Return the list of sheets associated with the book and render it into a bootstrap list-group. """ template_name = "index.html" def get_context_data(self, **kwargs): context = super(IndexView, self).get_context_data(**kwargs) return context @method_decorator(login_required) def dispatch(self, request, *args, **kwargs): return super(IndexView, self).dispatch(request, *args, **kwargs)
- 获取所选工作表上记录列表的视图扩展FieldBooksheetTableView:
class SheetTableView(FieldbookSheetTableView): """Sheet class based view. Returns the array of records (object) for the sheet and render it into a jquery datatable. """ template_name = "index.html" def get_context_data(self, **kwargs): context = super(SheetTableView, self).get_context_data(**kwargs) return context
- 在扩展FieldBooksheetEntryView的工作表中获取特定记录的视图:
class SheetEntryView(FieldbookSheetEntryView): """Return or remove a specific record in a sheet. If is present the url pramater 'to_delete', the current entry is removed. """ template_name = "index.html" def get_context_data(self, **kwargs): """Update view context.""" context = super(SheetEntryView, self).get_context_data(**kwargs) entry_to_delete = kwargs.get("to_delete", False) if entry_to_delete: context.update({ 'sheet_entry': self.remove_sheet_entry(self.sheet_name, self.record_id), }) else: context.update({ 'sheet_entry': self.get_sheet_entry(self.sheet_name, self.record_id), }) return context @method_decorator(login_required) def dispatch(self, request, *args, **kwargs): return super(SheetEntryView, self).dispatch(request, *args, **kwargs)
- 然后需要将视图映射到url.py文件中的url:
url('^$', IndexView.as_view(), name="index"), # list sheets url(r'^sheet-table/sheet_name=(?P<sheet_name>[-\w]+)/$', SheetTableView.as_view(), name='sheet_table'), # single sheet by id url(r'^sheet-entry-(?P<record_id>\w+)/sheet_name=(?P<sheet_name>[-\w]+)/$', SheetEntryView.as_view(), name='sheet_entry'), url(r'^sheet-entry-(?P<record_id>\w+)/sheet_name=(?P<sheet_name>[-\w]+)/delete/$', SheetEntryView.as_view(), {'to_delete': True}, name='sheet_entry_delete'),
如果需要,可以使用基本fieldbookuser模型,或者扩展它来定义一个简单的模型,如以下示例:
from fieldbook.models import FieldBookUser class CustomFieldBookUser(FieldBookUser): nick = models.CharField(max_length=100)
将登录、注销和注册映射到url.py:
url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html'}, name='login'), url(r'^accounts/logout/$', auth_views.logout, {'template_name': 'logged_out.html'}, name='logout'), url(r'^fieldbook/', include('fieldbook.urls')),
注释
请随意使用叉子并发送拉动请求。