1、获取某张表的某个字段的属性
意思就是获取括号中的属性
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")
用下面的方法来获取括号中的属性
data = models.app1Person.objects.all() for d in data: print(d._meta.get_field("name").verbose_name)
2、a标签中的href的绝对路径和相对路径的区别
如果使用绝对路径的话
return mark_safe("""<a href="/xadmin/app1/app1person/{pid}/change">编辑</a>""".format(pid = obj.pid))
点击这个a标签,他会从127.0.0.0:8080:后开始拼接域名,下图中圈红的就是拼接的路径
如果使用相对路径,则会在当前的域名后拼接,比如我们当前的域名是如下
我们的a标签是这样写的,这里要注意和上边的差别,他不是从/开始的
return mark_safe("""<a href="xadmin/app1/app1person/{pid}/change">编辑</a>""".format(pid = obj.pid))
这个时候我们点击a标签,观察一下域名,他会在当前域名的后面拼接我们的a标签指向的域名
3、这里用到反射,顺便复习一下,反射用的太少了
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也是一样的流程