1、获取某张表的某个字段的属性
意思就是获取括号中的属性
1 2 3 4 5 | class app1Person(models.Model): pid = models.AutoField(primary_key = True ) name = models.CharField(max_length = 32 ,verbose_name = "名字" ) salary = models.CharField(max_length = 32 ,verbose_name = "薪水" ) dept = models.ForeignKey(to = app1Dept,to_field = "did" ) |
用下面的方法来获取括号中的属性
1 2 3 | data = models.app1Person.objects. all () for d in data: print (d._meta.get_field( "name" ).verbose_name) |
2、a标签中的href的绝对路径和相对路径的区别
如果使用绝对路径的话
1 | return mark_safe( """<a href="/xadmin/app1/app1person/{pid}/change">编辑</a>""" . format (pid = obj.pid)) |
点击这个a标签,他会从127.0.0.0:8080:后开始拼接域名,下图中圈红的就是拼接的路径
如果使用相对路径,则会在当前的域名后拼接,比如我们当前的域名是如下
我们的a标签是这样写的,这里要注意和上边的差别,他不是从/开始的
1 | return mark_safe( """<a href="xadmin/app1/app1person/{pid}/change">编辑</a>""" . format (pid = obj.pid)) |
这个时候我们点击a标签,观察一下域名,他会在当前域名的后面拼接我们的a标签指向的域名
3、这里用到反射,顺便复习一下,反射用的太少了
1 2 3 4 5 6 7 8 9 10 | for m in self .model.objects. all (): temp = [] for i in self .list_display: if isinstance (i, str ): f = getattr (m,i) else : f = i( self .model,m) temp.append(f) |
3、关于模板使用问题的说明
html文件我们一般放在project的template目录下,其实我们可以在对应的app下也建立一个template的文件夹,那么django在找html文件的时候,先去project下的template目录下找html文件,如果没有找到则找app目录下的template目录下找html文件,这里如果有多个app,那么到底找那个app下的template目录下的文件呢?其实他是按照在djangon的settings中注册app的顺序来查找,如果查找到了,则不往下查找
同理,templatetags的和template也是一样的流程