django的model.py写一个带有注释的种公马配种年度统计记录表
时间: 2023-03-05 10:33:35 浏览: 67
下面是一个带有注释的Django Model,用于创建一张种公马配种年度统计记录表:
```python
from django.db import models
class BreedingRecord(models.Model):
"""
用于记录种公马的年度配种次数和配种成功率的模型。
"""
# 马的名字
horse_name = models.CharField(max_length=100)
# 年度
year = models.PositiveSmallIntegerField()
# 配种次数
breeding_count = models.PositiveIntegerField()
# 配种成功次数
breeding_success_count = models.PositiveIntegerField()
class Meta:
# 唯一性约束,确保同一年度一个种公马只能有一条记录
unique_together = ('horse_name', 'year')
def success_rate(self):
"""
计算配种成功率的方法。
"""
if self.breeding_count == 0:
return 0.0
return self.breeding_success_count / self.breeding_count
def __str__(self):
"""
在admin中显示对象名称的方法。
"""
return f"{self.horse_name} ({self.year})"
```
这个模型有以下字段:
- `horse_name`: 用于存储马的名字,是一个最大长度为100的字符串。
- `year`: 用于存储年度,是一个正整数字段。
- `breeding_count`: 用于存储配种次数,是一个正整数字段。
- `breeding_success_count`: 用于存储配种成功次数,也是一个正整数字段。
同时还定义了两个方法:
- `success_rate`: 计算配种成功率的方法。
- `__str__`: 在admin中显示对象名称的方法。
在Meta类中,我们使用`unique_together`约束确保同一年度一个种公马只能有一条记录。