📅  最后修改于: 2023-12-03 15:18:06.684000             🧑  作者: Mango
在Python中,onetoMany字段是Django ORM中最基本的外键类型之一。这个字段允许在一个模型上创建多个条目,这些条目可能与另一个模型中的唯一条目相关联。
from django.db import models
class ParentModel(models.Model):
name = models.CharField(max_length=50)
class ChildModel(models.Model):
parent_model = models.ForeignKey(ParentModel, on_delete=models.CASCADE)
name = models.CharField(max_length=50)
在上面的例子中,ParentModel
模型中包含一个name
字段。ChildModel
模型包含一个parent_model
外键,它是指向ParentModel
模型的。
在上面的示例中,我们还使用了on_delete=models.CASCADE
参数。它指定了当ParentModel
中的条目被删除时,所有相关的ChildModel
条目也应该被删除。
在 Django ORM中,onetoMany 字段支持以下其他参数:
db_index
:在方法中添加此参数来创建索引null
:指定是否允许外键为空related_name
:使用相反的关系名称获取与该模型关联的所有对象在下面的示例中,我们将创建一个帖子模型和一个评论模型,其中帖子模型包含多个评论。
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=50)
content = models.TextField()
class Comment(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
author = models.CharField(max_length=30)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
在上面的例子中,Post
模型包含标题和内容字段。另一方面, 评论模型包含外键post
,它是指向帖子模型的。 此外,还添加了一个related_name
参数来指定与“post”模型关联的所有评论。
onetoMany 字段是 Django ORM中的一个基本外键类型。它使模型之间的关联变得简单,因为您不必自己跟踪外键。 它还支持多个参数,可以根据您的需要进行调整。 通过使用onetoMany 字段,您可以轻松处理模型间的大量关系,并轻松地维护数据。