from django.db import models # Create your models here. class Person(models.Model): name=models.CharField(max_length=128) def __str__(self): return self.name class Group(models.Model): name=models.CharField(max_length=128) members=models.ManyToManyField(Person,through='Membership') def __str__(self): return self.name class Membership(models.Model): person=models.ForeignKey (Person,on_delete=models.CASCADE) group=models.ForeignKey(Group,on_delete=models.CASCADE) date_joined=models.DateField() invite_reason=models.CharField(max_length=64)
1. 新建项目和应用
steven@steven:~/myfil$ django-admin startproject learn_model
steven@steven:~/myfil$ cd learn_model
steven@steven:~/myfil/learn_model$ python3 manage.py startapp people
c
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py shell
>>> from people.models import Person >>> from people.models import Group >>> from people.models import Membership >>> ringo=Person.objects.create(name="Ringo starr") >>> m1=Membership(person=ringo,group=bealtes,date_joined=date(1996,8,16),invite_reason="Needed a new drummer.") >>> m1.save() >>> bealtes.members.all() >>> m2.save() >>> bealtes.members.all() <QuerySet [<Person: Ringo starr>, <Person: Paul McCartney>]> | |