Raj*_*Raj 5 django django-models
我有以下模型代表书籍和作者.一本书可以有多个作者,作者可以写多本书.所以我使用Django的ManyToManyField类型将两个模型相互链接.
我可以Book使用Django Admin 添加一个,并Author在此过程中创建一个.但是,当我看到Author我刚刚创建它时,它并没有链接到Book.我必须明确设置Author实例和Book实例之间的反向关系.
这只是它的方式还是我可以做一些与众不同的事情?
Models.py
class Book(models.Model):
book_title = models.CharField(max_length=255, blank=False)
authors = models.ManyToManyField('Author', blank=True)
class Author(models.Model):
author_first_name = models.CharField(max_length=255, blank=False)
author_last_name = models.CharField(max_length=255, blank=False)
books = models.ManyToManyField(Book, blank=True)
Run Code Online (Sandbox Code Playgroud)
您不需要两个ManyToManyField定义,因为没有的模型类ManyToManyField通过反向关系与另一个相关.请参阅:https://docs.djangoproject.com/en/dev/topics/db/queries/#many-to-many-relationships
如果将两个模型类定义为:
class Book(models.Model):
book_title = models.CharField(max_length=255, blank=False)
authors = models.ManyToManyField('Author', blank=True)
class Author(models.Model):
author_first_name = models.CharField(max_length=255, blank=False)
author_last_name = models.CharField(max_length=255, blank=False)
Run Code Online (Sandbox Code Playgroud)
然后对于任何Author实例a,a.book_set.all()由作者写的(或共同写的)书籍组成.
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |