django多对多学习笔记ManyToManyField


发布时间:2019-02-15 13:08    作者: 晖哥哥   已过去:2 年,3 月   阅读总量:390 已被赞:0


表单关系常用数据类型:

1、数据类型

   1)CharField 和TextField

   2)EmailField, URLField 和IPAddressField

   3)BooleanField 和NullBooleanField

   4)FileField

2、数据查询

  1)all

     people =Person.objects.all().order_by('first')

  2)filter

     books_about_trees =Book.objects.filter(title__contains="Tree")

      # SELECT *FROM myapp_book WHERE title LIKE "%Tree%"

      john_does =Person.objects.filter(last="Doe", first="John")

      # SELECT *FROM myapp_person WHERE last = "Doe" AND first = "John"

      today =datetime.now()

     overdue_books =book_queryset.filter(due_date__lt = today)

  3)exclude

  4)get

  5)values

    Person.objects.values('first')

     # SELECT first FROMmyapp_person;

     Person.objects.values_list('first')

Django 的 ORM 有多种关系:一对一,多对一,多对多。

各自定义的方式为 :

       一对一: OneToOneField

       多对一: ForeignKey

       多对多: ManyToManyField

上边的描述太过数据而缺乏人性化,我们来更人性化一些:

       多个属于一个,即 belong to :  ForeignKey,多个属于一个

       一个有一个,即 has one: OneToOneField

       一个有很多个,即 has many:  lots of A belong to B 与 B has many A,在建立 ForeignKey 时,另一个表会自动建立对应的关系

       一个既有很多个,又属于很多个,即 has many and belong to : ManyToManyField,同样只能在一个model类中说明,关联表会自动建立

在未定义的model中用关联表类名小写加"_set"来访问,多对多也一样

 

点赞

0




登陆后方可评论