django的引导crud模板库。
django-bootstrap-crud-templates的Python项目详细描述
django将开发人员从使用 基于类的视图;bootstrap,设计美观css+html的劳动 组件。
django bootstrap crud模板旨在将两者结合起来,允许开发人员 只需编写简单的基于类的视图,然后选择或扩展引导 模型的完整积垢暴露模板。
开发人员甚至可以只定义一个模型,包括一个MIXIN和 运行函数为该模型生成一组工作的crud url(请参见 自动生成视图和url)。安装
- pip install django-bootstrap-crud-templates
- 在项目设置模块的INSTALLED_APPS列表中添加'bsct'。
用法
django bootstrap crud模板提供了一个集成了bootstrap的存储库 Django模板。
这些模板被设计成直接处理上下文变量 由基于django类的视图提供,属性由 Django模型。
型号要求
为了充分利用这些特性,模型应该有几个 定义的属性:
- 实例方法:
- get_absolute_url:返回用于查看实例的url。 (最低要求)
- get_delete_url:返回删除实例的url。
- get_update_url:返回更新实例的url。
- get_list_url:返回列出所有实例的url。
- 类方法:
- get_create_url:返回创建实例的url。
例如,对于名为“widget_delete”的删除url,get_delete_url可以是 定义为:
def get_delete_url( self ): return reverse( 'widget_delete', kwargs = {'pk' : self.pk } )
可以通过添加^ {TT9}$$混合来定义这些方法 初始化到您的模型,并在下面简单地命名相应的url 方式:
- lowercasemodelname_detail:用于详细视图。
- lowercasemodelname_create:用于createview。
- lowercasemodelname_update:用于updateview。
- lowercasemodelname_delete:删除视图。
- lowercasemodelname_list:对于列表视图。
自定义模型字段的显示
默认的局部视图只打印每个字段的值。
如果您对任何字段的要求超过了打印值,只需 为该字段定义详细方法(“<;field>;_detail”):
class Widget( models.Model ) sku = models.IntegerField() def sku_detail( self ): return 'SKU_%d' % ( self.sku )
查看要求
要直接使用模板,而不是扩展模板,只需指定其名称 到基于类的视图的模板名属性。
# in views.py class CreateWidget( generic.CreateView ): model = models.Widget template_name = 'bsct/plain/form.html'
模板要求
默认情况下,模板从“base.html”扩展并填充 块bsct_main。 因此,您需要一个名为“base.html”的模板 它必须包含块bsct_main
# base.html {% block BSCT_MAIN %} {% endblock %}
如果要使用 包确保您的基本模板还定义了块bsct\u css
# base.html {% block BSCT_CSS %} {% endblock %} </head> <body> {% block BSCT_MAIN %} {% endblock %}
如果您希望模板从“base.html”以外的模板扩展, 只需提供其名称作为上下文变量“bsct_base”的值。
#in views.py class CreateWidget( generic.CreateView ): model = models.Widget, template_name = 'bsct/plain/form.html' def get_context_data(self, **kwargs): context = super(CreateWidget, self).get_context_data(**kwargs) context[ 'bsct_base' ] = 'my_special_widget_base.html' return context
自动生成视图和URL
通过使用 bsct.urls.urlgenerator生成一组url(和视图),并将它们包含在应用程序中urlpatterns:
from bsct.urls import URLGenerator from crud import models bsct_patterns = URLGenerator( models.Widget ).get_urlpatterns() urlpatterns = patterns( '', url( '', include( bsct_patterns ) ) )
您也可以选择仅自动生成选定的几个URL:
urlpatterns = patterns( '', url( '', # Automatically generate the list and delete url+view. URLGenerator( models.Widget ).get_delete_url(), # Pass parameters to the generic ListView. URLGenerator( models.Widget ).get_list_url( paginate_by = 3 ), # Use our custom create view. url( r'^widget/create/(?P<id>\d+)/$', MyWidgetCreateView.as_view(), name = 'widget_create' ), ) )
模板定制
自定义这些模板与创建自己的模板和 包括所需的django引导crud模板。
# widget_list.html {% extends 'bsct/plain/list.html' %} {% block BSCT_LIST_ACTIONS %} <a href='{% object.use_widget %}'> Use Widget </a> {% endblock %}
默认的'bsct/base.html'链接到由cdn托管的小型引导程序 css文件。如果您喜欢使用自己的版本,只需重写块 引导程序。
^{p页r 10}$由开发人员为开发人员构建
django bootstrap crud模板是一个开源项目,最终目标是 宿主django的用户提交的引导模板集的集合。
如果您有一组引导模板想要包含,只需 遵循以下五个步骤(假设您有一个github帐户):
- 分叉并克隆https://github.com/Alem/django-bootstrap-crud-templates。
- 确保您的设备至少有以下两个模板:
- form.html
- list.html
- detail.html
- 确认“delete.html”
- (可选)创建一个readme.rst,其中包含模板集和任何其他相关信息(外部依赖项、作者、主页)的简要说明。
- 将所有文件放入“bsct/templates/yourthemename/”中。
- 拉。
所有贡献的模板都继承了包含项目的许可证。