使用django的model.py创建一个带有注释的个人亲属关系信息表
时间: 2023-03-05 08:51:24 浏览: 70
好的,以下是一个使用 Django 的 `models.py` 创建个人亲属关系信息表的例子。在这个例子中,我们定义了一个 `Person` 模型,它具有以下字段:
- `first_name`:人名的名字部分
- `last_name`:人名的姓氏部分
- `date_of_birth`:出生日期
- `gender`:性别
- `father`:父亲的个人信息,是一个外键,引用了另一个 `Person` 模型
- `mother`:母亲的个人信息,也是一个外键,引用了另一个 `Person` 模型
- `spouse`:配偶的个人信息,同样是一个外键,引用了另一个 `Person` 模型
在这个例子中,我们还为每个字段添加了注释,以提供更多的信息和上下文。
```python
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=50, help_text="个人名字的名字部分")
last_name = models.CharField(max_length=50, help_text="个人名字的姓氏部分")
date_of_birth = models.DateField(help_text="个人的出生日期")
GENDER_CHOICES = (
('M', '男性'),
('F', '女性'),
('U', '未知'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='U', help_text="个人的性别")
father = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='children_as_father', help_text="个人的父亲信息")
mother = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='children_as_mother', help_text="个人的母亲信息")
spouse = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='spouse_of', help_text="个人的配偶信息")
def __str__(self):
return f'{self.last_name} {self.first_name}'
```
在这个例子中,我们使用了 `ForeignKey` 字段来表示人物之间的关系。这些字段允许我们在不同的人物之间建立关联,并允许我们在 `Person` 模型中定义反向关系,以便可以轻松地从另一个 `Person` 实例中访问与该人物相关的信息。
使用 `related_name` 参数,我们还定义了一些反向关系的名称,这些名称允许我们从父母或配偶的角度轻松地访问与该人物相关的信息。
希望这可以帮助您创建一个带有注释的个人亲属关系信息表。