因为django学习中,一些方法函数或是属性总是忘记,于是在此做一个记录,将遇到的一些常用的或者经常忘记以至于重复搜索的记录下来
related_name:
它的值是外键名,可以通过它查询所有属于主表的子表信息。
例如:
author = models.ForeignKey(User,related_name="article")
表明一对多关系,当前表是User的子表,调用时可以通过User表,用定义的外键名,查询到子表Meta类中的fields属性:
可以将其他类中定义好的子段直接调用过来在此表单中用,fields中的属性就是调用的字段名称
from django import forms
from .models import ArticlePost
class ArticlePostForm(forms.ModelForm):
class Meta:
model = ArticlePost
fields = ("title","body")
from django.db import models
class ArticlePost(models.Model):
title = models.CharField(max_length=200)
body = models.TextField
若想调用全部,可以使用fields = "__all__"
reverse():
避免视图函数中的硬编码
调用方式:reverse(viewname,urlconf=None,args=None,kwargs=None,current_app=None)
viewname是在应用中的urls中设置的name值
模板文件中使用链接地址时可以使用{% urls viewname %}
的形式来代替硬编码,在视图函数中,就可以使用例如HttpResponseRedirect(reverse('appname:viewname'))
来代替硬编码filter
用来对数据库中的数据进行筛选。例如
columns = ArticleColumn.objects.filter(user=request.user)
注意:当没有找到符合要求的查询字段时,会返回一个空的查询集,不会报出异常过滤器
格式为{{value|filter}}
,filter为过滤器。常用的过滤器有:
capfirst
:将value的第一个字符转换为大写,若不是字母则过滤器失效
cut
:移除value的字符,例如空格
date
:根据指定格式输出时间,如{{value|data:”D d M Y”}}
join
:利用指定字符连接所给列表元素slug
作用:为每条记录生成一个可读性较好的url,有助于永久链接的发布render()
将request参数,以及数据(默认字典类型)传入指定模板中进行渲染。字典的键是模板中的变量名字,值是已经定义过的变量名{{ name}}
常为模板中的变量表示形式。加载模板时,这些会被传入的变量所代替。也可以在变量后面加.以调用变量的属性form表单绑定
当传入视图函数的请求是POST类型时,可以将数据传入表单函数,传回的就是一个和数据绑定的表单save(commit=False)
用户提交一条表单信息时,有时我们不能直接将这条信息添加入数据库,而是需要后台再添加一些用户的提交的表单信息中没有的属性值。此时我们就需要使用commit=False
,它可以返回一个实例,并且数据暂时不会提交到数据库。可以在后台将数据添加到实例中之后,再用.save()
将实例提交到数据库。User对象
这是django中默认的用户的对象类型。在网上查到的它包含的属性有
username
:用户名,可以包含字符,长度不能超过30,必选
first_name
:姓,可选
last_name
:名,可选
email
:邮箱,可选
password
:密码,必选
groups
:介绍说是和group(用户组)为多对多关系
user_permissions
:介绍说是和Permission(权限)为多对多关系
is_active
:是否处于活跃状态。不活跃状态相当于账号封禁
is_staff
:是否可以访问admin页面,默认False
is_superuser
:是否为超级用户,相当于root用户,默认False
last_login
:上次登录时间。默认当前时间
date_joined
:此用户被创建的时间
方法有:
is_anonymous()
:是否匿名
is_authenticated()
:是否通过验证登录
get_full_name()
:返回姓和名 中间用空格隔开
get_short_name()
:返回姓
set_password(raw_password)
:设置密码
check_password(raw_password)
:验证密码
get_group_permissions(obj=None)
:以集合形式返回用户组所有权限
has_perm(perm, obj=None)
:判断用户是否拥有某项权限
has_perms(perm_list, obj=None)
:判断是否拥有此列表中的所有权限