我的环境
- IDE:VSCode
- VSCode的扩展
- Python
- 皮兰斯
- 拉夫
- Python 类型提示
- 排序
- DjLint
- Django
- 黑色格式
我的问题是什么
我正在和Django 一起做一个测验提交网站.
我为一个测验和一个用户创建了一个models.py
文件,如下所示:
class User(AbstractUser):
pass
class Quiz(models.model):
title = models.CharField(max_length=50)
content = models.TextField()
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="posted_quizzes"
)
correct_answer = models.CharField(max_length=50)
由于Django 的related_name
反向查询功能,上面的代码将属性posted_quizzes
添加到User类.
这是一个非常有用的函数,但仅通过查看User类并不明显,即使它是User类的属性.
我经常定义新的方法,忘记它们可以通过related_name
访问.
有没有办法直接从User类中查看通过related_name
添加的属性?
我所try 的
我try 将其作为未实现的属性直接添加,如下所示:
class User(AbstractUser):
@property
def posted_quizzes(self):
"""
defined by related_name of Quiz model
posts the user posted
"""
pass
class Quiz(models.model):
title = models.CharField(max_length=50)
content = models.TextField()
user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="posted_quizzes"
)
correct_answer = models.CharField(max_length=50)
这种方法很好,因为它不会更改迁移,但它的代码太多.