当前位置 : 主页 > 编程语言 > python >

Django model

来源:互联网 收集:自由互联 发布时间:2022-06-15
一对多,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

二.一对一(一个学生一个编号)

Django model_表单

Django model_数据库_02

Django model_表单_03

三.一对一(文章标签 一个文章对应多个标签 每个标签又对应多个文章)

Django model_字段_04

Django model_数据库_05

Django model_表单_06

Django model_数据库_07Django model_字段_08Django model_数据库_09


article=models.Article.objects.create(name='开盘信息')

tags=models.Tags.objects.create(name='股票')

tags.article.add(article)

正常查找和反向查找 和一对一一样

Django model_数据库_10



Django model_字段_11

Django model_字段_12


Django model_表单_13

Django model_数据库_14


################列表推导式

Django model_字段_15

Django model_表单_16

Django model_数据库_17

Django model_表单_18

Django model_表单_19


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 标签>]>


Django model_字段_20

Django model_表单_21

Django model_表单_22

Django model_数据库_23

Django model_字段_24


Django model_数据库_25

Django model_字段_26


Django model_数据库_27

Django model_字段_28


Django model_数据库_29

Django model_表单_30

Django model_表单_31

class IdcView(TemplateView):
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)

Django model_字段_32

Django model_表单_33

Django model_字段_34

Django model_数据库_35


Django model_表单_36

Django model_表单_37

Django model_数据库_38

Django model_数据库_39

Django model_表单_40

Django model_数据库_41

Django model_表单_42

Django model_表单_43

Django model_数据库_44

Django model_数据库_45


Django model_字段_46

Django model_字段_47

class IdcView(TemplateView):
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处的文章,转载请说明出处】
网友评论