明年做那些网站能致富,中国互联网协会地址,赤城网站建设,宁夏信用建设官方网站昨天我们将自定义列放在类我们自定义的Bookconfig配置类内#xff0c;但是这样就写死了#xff0c;因为当我们访问publish表的时候应该也有这样的自定义列#xff0c;所以我们应该将我们的自定义列放在默认的配置表里面。应该怎么做#xff1f; 当我们的自定义列挪到默认配…昨天我们将自定义列放在类我们自定义的Bookconfig配置类内但是这样就写死了因为当我们访问publish表的时候应该也有这样的自定义列所以我们应该将我们的自定义列放在默认的配置表里面。应该怎么做 当我们的自定义列挪到默认配置类的时候我们自定义配置类中的list_display就要发生改动 list_display [title, price, publish,authors,publishDate,sites.ModelAdmin.edit,sites.ModelAdmin.delete] 而在默认配置类中往list_display添加editdelete。list_display [__str__editdelete]。这样写会很麻烦。 我们有这样一个办法在默认配置类中我们新构建一个列表然后把我们自定义配置类的list_display添加到这个新列表中并且把edit和delete也添加进去这样在循环新的list-display的时候既能实现到自己配置类中的list_display也能实现默认配置类中的list_display # 默认操作函数def edit(self,objNone,is_headerFalse):if is_header: # 如果传过来的参数is_headertrue则说明是表头部分return 操作else: # 如果传过来的参数为obj则说明是表单部分return mark_safe(a href/stark/app01/book/%s/change/编辑/a%obj.pk)def delete(self,objNone,is_headerFalse):if is_header:return 操作else:return mark_safe(a href/stark/app01/book/%s/delete/删除/a % obj.pk)def check_box(self, objNone, is_headerFalse):if is_header:return 操作else:return mark_safe(input typecheckboxpk%s % obj.pk) #视图函数def new_list_display(self): temp[] temp.extend(self.list_display) # 把自己配置类中的list_display添加进去 # 对于没有自定义配置类的model就是用默认配置类的list_display 注意用的是extend temp.insert(0,ModelAdmin.check_box) # 在最前面加ModelAdmin.check_box不要写成self.check_box 这是个坑一定不要写成self.check_box # 如果写成了self.edit说明已经在edit这个方法中传了参数self在调用的时候就不需要传self这个参数了 temp.append(ModelAdmin.edit) temp.append(ModelAdmin.delete)return temp 这时候我们发现自定义列中的标签写死了我们希望访问每个model都有这个自定义操作列。 这时候我们想到url的反向解析。 拿一个操作来说在url中起好name利用revers反向解析url。替换a标签的href。 写成函数之后就变成这样 接下来就是利用ModelForm对数据进行操作了。复习ModelForm知识. 我们发现不仅在添加视图函数中用到modelform在编辑甚至删除的试图中也用到modelform。所以可以写成函数。 在app01下的stark.py文件下可以写自己的model form 在页面中渲染 !DOCTYPE html
html langen
headmeta charsetUTF-8title添加数据/titlelink relstylesheet hrefhttps://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.csslink relstylesheet href/static/css/form.css
/head
body
div classcontainerh3添加数据/h3div classrowdiv classcol-md-6 col-md-offset-3form action methodpost novalidate classform-horizontal{% csrf_token %}{% for field in form %}div classform-grouplabel for classcol-sm-2 control-label{{ field.label }}/label{{ field }}divspan classerrors pull-right stylecolor:red{{ field.errors.0 }}/span/div/div{% endfor %}button classbtn btn-default提交/button/form/div/div
/div
/body
/html 接下来就是给list页面添加页码了。 我们直接将之前写的分页拿过来用 转载于:https://www.cnblogs.com/yb635238477/p/9562969.html