django rest framework meets angular 5 material.io dynamic forms-快速开发创建和编辑对话框

django-angular-dynamic-forms的Python项目详细描述


此回购提供快速的Django混和和角度库。 为django rest框架开发创建/编辑对话框。 它取决于django 2、angular 6和material ui。

注:对Angular 5和Django<;2的支持未得到积极开发-使用 release/angular5 branch或1.1.*版本的包(如果需要)。

在django端,扩展Viewset以使用AngularFormMixin 并且可选地通过提供布局来配置MIXIN。 信息或字段默认值(如css类)。参见演示 详细情况。

classCityViewSet(AngularFormMixin,viewsets.ModelViewSet):"""
    API for cities
    """queryset=City.objects.all()serializer_class=CitySerializer

在角度方面,使用DjangoFormDialogService显示一个对话框:

constructor(privatedialog: DjangoFormDialogService){}createCity() {this.dialog.open('/api/1.0/cities/').subscribe(result=>{console.log('City created, result from server is:',result);});}

您还可以通过<django-inpage-form>标记在自己的组件中显示表单。

<django-inpage-formdjango_url="/api/1.0/cities/"(submit)="submit($event)"(cancel)="cancel($event)"></django-inpage-form>

演示和示例源文件

请参见http://mesemus.no-ip.org:12569

上的演示 https://raw.githubusercontent.com/mesemus/django-angular-dynamic-forms/develop/docs/demo.png

通过在您这边做一些工作,外键和多对多关系也得到了支持(有关详细信息,请参见演示)

https://raw.githubusercontent.com/mesemus/django-angular-dynamic-forms/develop/docs/foreign_key.png

安装

django边:

pip install django-angular-dynamic-forms

角度边:

npm install --save django-angular-dynamic-forms @ng-dynamic-forms/core @ng-dynamic-forms/ui-material

要呈现表单,此库使用https://github.com/udos86/ng-dynamic-forms-不要忘记 将其添加到package.json中。

并将DjangoFormModule添加到导入。你需要提供你自己的错误服务 返回给用户的通信错误。请参阅demo/angular/src/app/mat-error.service.ts以获取 一个示例实现。

import{DjangoFormModule,ErrorService}from'django-angular-dynamic-forms';@NgModule({declarations:[...],imports:[BrowserAnimationsModule,DynamicFormsCoreModule.forRoot(),DynamicFormsMaterialUIModule,DjangoFormModule,HttpClientModule,...],providers:[{provide: ErrorService,useClass: MatErrorService},],bootstrap:[AppComponent]})exportclassAppModule{}

配置

如果Angular和Django服务器位于同一主机/端口上(请参见 https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md关于开发技巧, 无需配置。

如果angular和django位于不同的主机/端口上,请设置django设置ANGULAR_FORM_ABSOLUTE_URLS=True( 感谢@sssolid指出这一点)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener