权限组件

实例方法和函数的区别

class Person(object):
      def __init__(self,name)
           self.name=name
      def speak(self):
print(self)
# 实例方法 la
=Person("la") la.eat() # 为什么不需要传参数,这是因为self把调用他的对象当成了参数
结果是:
la

# 函数调用则必须穿参数,否则会报错
Person.speak(123) # 此时self就等同于123
结果是:
123

 而在list_display当中,视图是直接调用的,因此需要传参数

在注册时定义:
class ArtileConfig(Xadmin.ModelXadmin):
    def add_0(self,obj=None,header=False):
        if header:
            return "操作"
        else:
            url=reverse(self.model._meta.model_name+"_add")
            return  mark_safe("<a href='%s'>添加</a>"%url)
   
    list_display=[checkbox,"title","up_count","down_count",add_0]

在另外一个py文件中调用,因此需要自己传参数




在Xadmin中调用:
def test(self, request, *args): data_list=self.model.objects.all() # 返回的是queryset列表 items_list=[] title_list=[] for field in self.list_display: if isinstance(field, str): title_list.append(self.model._meta.get_field(field).verbose_name) # 求字段名 else: # if callable(field) 判断是不是函数 # 函数怎么命名 title_list.append(field(self,header=True)) for obj in data_list: item=[] for field in self.list_display: #["title","desc",add_0] if isinstance(field,str): # 求字段名 item.append(getattr(obj,field)) # 当是多对多的关系时,这个也可以的 else: item.append(field(self,obj)) items_list.append(item) return render(request, "XXadmin/XXadmin_check.html",{"items_list":items_list,"title_list":title_list})

url分发缺陷,用表名当做反向解析,会出现重复,在不同的app中,可能会有同名的表

@property
    def url(self):                     # self指调用他的对象,也就是site调用
        table_name = self.model._meta.model_name
        app_name = self.model._meta.app_label
        url = []
        url.append(re_path('^add/$',self.test,name=table_name+"_add"))
        url.append(re_path('^delete/(\d+)',self.test,name=table_name+"_delete")) 
        url.append(re_path('^update/(\d+)',self.test,name=table_name+"_update"))
        url.append(re_path('^check/(\d+)',self.test,name=table_name+"_check"))
        url.append(re_path('^$',self.test,name=table_name+"_home"))
        return url,None,None        # [re_path('^delete/(\d+)',test),],None,None

因此可以加上app的名字,相当于加上了namespace,这样重复的概率就会很低

 

如何展示不同的表,  把数据放在

 

转载于:https://www.cnblogs.com/AbnerLc/p/11186604.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值