一对多,models.ForeignKey() 一对一,models.OneToOneField() 多对多,authors = models.ManyToManyField() 1.主键外键关联 一.一对多 (一个老师下面好多学生) class Idc(models.Model): name = models.CharField(max_lengt
- 一对多,models.ForeignKey()
- 一对一,models.OneToOneField()
- 多对多,authors = models.ManyToManyField()
1.主键外键关联
一.一对多 (一个老师下面好多学生)
class Idc(models.Model):name = models.CharField(max_length=32)
age = models.TextField(max_length=64)
def __str__(self):
return self.name
class Teacher(models.Model):
name = models.CharField(max_length=20)
class Student(models.Model):
name = models.CharField(max_length=20)
##teacher删除的时候 此字段默认显示 blank 表示表单为空 null表示数据库为空
teacher = models.ForeignKey(Teacher,default='', null=True, blank=True, on_delete=models.SET_DEFAULT)
def __str__(self):
return self.name
正向查找
stu=models.Teacher.objects.get(name='wangwu').student_set.all()
反向查找:
stu=models.Student.objects.get(name='llll').teacher.name
二.一对一(一个学生一个编号)
三.一对一(文章标签 一个文章对应多个标签 每个标签又对应多个文章)
article=models.Article.objects.create(name='开盘信息')
tags=models.Tags.objects.create(name='股票')
tags.article.add(article)
正常查找和反向查找 和一对一一样
################列表推导式
from django.contrib.auth.models import Permission, User, Group
u1=User.objects.get(pk=1) ###获取用户
u1.user_permissions.all() ##查看用户权限
<QuerySet []>
perm=Permission.objects.get(codename='add_user') ##获取权限
u1.user_permissions.add(perm) ##给用户添加这个全新啊
u1.user_permissions.all() ##查看用户的权限
<QuerySet [<Permission: login | tags | Can add 标签>]>
template_name = 'tm/idc.html' def post(self,request,*args,**kwargs):
data = QueryDict(request.body).dict()
data2 = request.POST.dict()
print(data2)
print(data)
return JsonResponse(data)
template_name = 'tm/idc.html'
# def get_context_data(self,request,*args,**kwargs): # kwargs = super().get_context_data(**kwargs) # pk=kwargs.get('pk') # data = Idcc.objects.filter(id=pk) # qs = [i.to_dict_base for i in data] # return qs def get_context_data(self, **kwargs):
idcs = Idcc.objects.all()
return {'idcs':idcs}
def post(self,request,*args,**kwargs):
print(request.body)
#data = QueryDict(request.body).dict() data = request.POST.dict()
Idcc.objects.create(**data)
status={'status':'1'}
return JsonResponse(status)
def delete(self,request,*args,**kwargs):
pk=kwargs.get('pk')
print(pk)
Idcc.objects.get(id=pk).delete()
status={'status':'1'}
return JsonResponse(status)
def put(self,request,*args,**kwargs):
pk = kwargs.get('pk')
data = QueryDict(request.body).dict()
print(data)
Idcc.objects.filter(id=pk).update(**data)
status={'status':'1'}
return JsonResponse(status) 【文章转自:美国站群服务器 http://www.558idc.com/mgzq.html处的文章,转载请说明出处】