edc自定义jango modeladmin混合、标记和模板。
edc-model-admin的Python项目详细描述
EDC模型管理
EDC自定义Django模型管理混合程序、标签和模板
< H3>模型管理语言> EH3>
重写modeladmin的get_form以插入问题编号和数据库字段名。
< H3>模型管理→混合>< EH3>
跳过changelist,并重定向到EDC就诊计划中列出的下一个CRF或申请,如果“[保存和下一个]” 单击而不是“[保存]”
classBaseModelAdmin:search_fields=("subject_identifier",)add_form_template="edc_model_admin/admin/change_form.html"change_form_template="edc_model_admin/admin/change_form.html"change_list_template="edc_model_admin/admin/change_list.html"@admin.register(CrfTwo)classCrfTwoAdmin(BaseModelAdmin,ModelAdminNextUrlRedirectMixin,admin.ModelAdmin):show_save_next=Trueshow_cancel=True
您需要使用包含的change_form.html覆盖admin表单上的提交按钮。
另请参见:edc_visit_schedule
< H3>
如果设置了post_url_on_delete_name,则在保存时将管理窗体重定向到默认changelist以外的视图。
@admin.register(CrfFive)classCrfFiveAdmin(ModelAdminRedirectOnDeleteMixin,admin.ModelAdmin):post_url_on_delete_name="dashboard2_app:dashboard_url"defpost_url_on_delete_kwargs(self,request,obj):return{'subject_identifier':obj.subject_identifier}
如果与来自edc_dashboard和edc_subject_dashboard的中间件一起使用,也可以在请求对象中存储url名称。 如果在部署之前不知道名称空间,这将非常有用。
例如,添加到设置:
MIDDLEWARE=[...,'edc_dashboard.middleware.DashboardMiddleware','edc_subject_dashboard.middleware.DashboardMiddleware',],DASHBOARD_URL_NAMES={'subject_dashboard_url':'dashboard_app:subject_dashboard_url',},
然后声明模型管理类:
@admin.register(CrfFive)classCrfFiveAdmin(ModelAdminRedirectOnDeleteMixin,admin.ModelAdmin):post_url_on_delete_name="subject_dashboard_url"defpost_url_on_delete_kwargs(self,request,obj):return{'subject_identifier':obj.subject_identifier}
ModelAdminRedirectOnDeleteMixin将尝试使用post_url_on_delete_name作为字典键从请求对象获取urlname。