zoukankan      html  css  js  c++  java
  • Django 之 ForeignKey、ManyToMany的访问方式

    1、ForeignKey

    情况I:

    1 from django.db import models
    2 
    3 class Blog(models.Model):
    4     pass
    5 
    6 class Entry(models.Model):
    7     blog = models.ForeignKey(Blog)

    访问方式:

    b = Blog.objects.get(id=1)
    b.entry_set.all()

    情况II:

     1 from django.db import models
     2 
     3 class Blog(models.Model):
     4     pass
     5 
     6 class Entry(models.Model):
     7     blog = models.ForeignKey(
     8         Blog,
     9         related_name='entries'
    10     )

    访问方式:

    b = Blog.objects.get(id=1)
    b.entries.all()

    2、ManyToMany

    情况I:

    class Person(models.Model):
        name = models.CharField(max_length=128)
    
        def __str__(self):              # __unicode__ on Python 2
            return self.name
    
    class Group(models.Model):
        name = models.CharField(max_length=128)
        members = models.ManyToManyField(Person)
    
        def __str__(self):              # __unicode__ on Python 2
            return self.name

    访问方法:

    >>> beatles = Group.objects.create(name="The Beatles")
    >>> beatles.members.all()
    <QuerySet [<Person: Ringo Starr>]>
    >>> ringo = Person.objects.create(name="Ringo Starr") >>> ringo.group_set.all() <QuerySet [<Group: The Beatles>]>

    情况II:

     1 class Person(models.Model):
     2     name = models.CharField(max_length=128)
     3 
     4     def __str__(self):              # __unicode__ on Python 2
     5         return self.name
     6 
     7 class Group(models.Model):
     8     name = models.CharField(max_length=128)
     9     members = models.ManyToManyField(Person, related_name='groups')
    10 
    11     def __str__(self):              # __unicode__ on Python 2
    12         return self.name

    访问方法:

    >>> beatles = Group.objects.create(name="The Beatles")
    >>> beatles.members.all()
    <QuerySet [<Person: Ringo Starr>]>
    
    >>> ringo = Person.objects.create(name="Ringo Starr")
    >>> ringo.groups.all()
    <QuerySet [<Group: The Beatles>]>
  • 相关阅读:
    python-深浅copy-18
    Python-集合-17
    linux-阿里云仓库搭建-搭建本地仓库-yum
    python-知识回顾-16
    python-编码-15
    python-小知识点-14
    codevs 1048石子归并
    codevs 1048 石子归并
    codevs1068乌龟棋
    codevs 1697 ⑨要写信
  • 原文地址:https://www.cnblogs.com/liuq/p/6015609.html
Copyright © 2011-2022 走看看