1 Star 0 Fork 2

py2010 / django-generic-views-templates

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

django-generic-views-templates

django通用视图模板 (low-code)

  • 功能:

      我们在开发网站时, 经常碰到要实现对一些数据库表进行增删改查的功能, 模型需配置urls, 配置模板等,
      配置增删改查的Views, 大家平时开发任何新网站或增加新模块功能, 都要做很多这种复制粘贴的重复劳动.
      这时就可利用本APP进行简单配置实现各种常见功能, 非侵入方式不会影响原有功能
    
      django自带的admin也可简单配置便能实现增删改查, 和后来CBV类视图是二套独立的程序,
      且admin大多十几年以前的代码, 无论前端还是后端py代码, 和我们开发的网站整合麻烦.
      除非是纯用admin功能简单, 如果某些页面要增加复杂功能, 改起来就繁琐, 一堆体力活. 
      也没有generic通用视图设计的合理便于维护和扩展功能, 二套东西堆积一起感觉比较乱.
      所以admin通常只适合在中小项目中用用, 大项目则都是使用django的Views自定义开发,
      本APP适应各场景, 可放入各django项目中, 对于增删改查等常用功能大大减少重复劳动.
  • 使用:

      1. 将APP (generic) 放入自己的django项目中
      2. generic/templates/generic/目录下4个html为inspinia_admin前端, 修改为和你们网站一致的组织/风格样式
      3. 查看我的示例项目, 在自己django项目中配置使用.

最新代码在示例中

https://github.com/py2010/example/tree/main/apps/generic

示例

https://github.com/py2010/example/

https://gitee.com/py2010/example/


'''
# views使用示例:

class XxxMixin(views.ModelMixin):
    model = models.Xxx


class XxxList(XxxMixin, views.MyListView):
    list_fields = ['pk', 'm2o__o2o__pk', 'x2o__x2m', '反向外键/正反m2m']
    filter_fields = ['field1', 'x2o__field3']


class XxxDetail(XxxMixin, views.MyDetailView):
    1


class XxxForm(XxxMixin):
    fields = '__all__'
    # form_class = forms.XxxForm


class XxxCreate(XxxForm, CreateView):
    # template_name_suffix = '_add'
    1


class XxxUpdate(XxxForm, UpdateView):
    1


class XxxDelete(XxxMixin, views.MyDeleteView):
    1


# URL人工配置示例

from django.conf.urls import url
from xxx_app_label import views

urlpatterns = [

    url(r'^xxx/create/$', views.XxxAdd.as_view(), name='xxx_create'),
    url(r'^xxx/delete/$', views.XxxDelete.as_view(), name='xxx_delete'),

    url(r'^xxx/(?P<pk>\d+)/update/$', views.XxxUpdate.as_view(), name='xxx_update'),

    url(r'^xxx/(?P<pk>\d+)/$', views.XxxDetail.as_view(), name='xxx_detail'),
    url(r'^xxx/$', views.XxxList.as_view(), name='xxx_list'),

]

# 自动生成URL配置及视图示例, 参考 generic.routers.MyRouter

'''



'''
自动生成url及视图, 使用方法:


# urls.py

from generic.routers import MyRouter
from . import models  # 用于自动views
from . import views  # 用于人工views

urlpatterns = [

    # 所有urls及视图都自动创建 (默认配置conf.ROUTER_ACTIONS={})
    *MyRouter(models.Xxx),


    # 如果需使用自定义配置的人工ListView, 除此之外其它自动生成, 则:
    *MyRouter(models.Xxx, list=False),
    url(r'^xxx/$', views.XxxList.as_view(), name='xxx_list'),


    # 如果 增删改 人工生成, 其它自动生成, 则:
    url(r'^xxx/create/$', views.XxxAdd.as_view(), name='xxx_create'),
    url(r'^xxx/delete/$', views.XxxDelete.as_view(), name='xxx_delete'),

    url(r'^xxx/(?P<pk>\d+)/update/$', views.XxxUpdate.as_view(), name='xxx_update'),

    *MyRouter(models.Xxx, 0b11),


    # 自动生成Detail, 其它人工
    *MyRouter(models.Xxx, 0, detail=True),
    ...  # 其它人工处理


]


注意!!
如果自动和人工url都存在, url重复了, 则按django原理, 前面的url优先匹配路由, 使在前面的生效,

model各页面的人工URL路径规则, 如果和当前通用视图模板URL路径规则一致时(conf.ROUTER_URL_RULES),
可以将自动MyRouter()放后面, 前面有人工自定义url则优先生效, 没有则匹配自动url


# 示例:

urlpatterns = [
    ...
]
add_router_for_all_models()

'''

空文件

简介

django通用视图模板, django低代码框架 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/py2010/django-generic-views-templates.git
git@gitee.com:py2010/django-generic-views-templates.git
py2010
django-generic-views-templates
django-generic-views-templates
main

搜索帮助