python - 覆盖 Django 的 RelatedManager 方法

标签 python django django-models

Django 的 ForeignRelatedObjectsDescriptor.create_manager(...) 函数动态创建 RelatedManager 类并随后初始化动态创建的类的实例。

如果我想覆盖 RelatedManager.add(...) 方法,我该怎么做?

RelatedManager 类在文件中创建:django/db/models/fields/related.py

我想如何使用自定义 RelatedManager 的示例是...

class Record(Model):
    string = CharField()
class Managed(Model):
    record = ForeignKey('Record')
    boolean = BooleanField()
def view_function(...):
    record = Record(string='Example')
    record.save()
    record.managed_set.add(Managed(boolean=True)) # How to override add()?

如有任何建议,我们将不胜感激。

最佳答案

我不确定你需要覆盖什么 - 默认查询集已经做了你想要的。

但要回答这个问题,您可以在模型上定义自定义管理器并设置 use_for_related_fields=True 以确保将其用作自动管理器。请参阅 controlling automatic Manager types 上的文档.

关于python - 覆盖 Django 的 RelatedManager 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694767/

相关文章:

python - 如何在 DRF 中的序列化程序验证/保存之前添加其他数据?

python - 编写管理器来过滤查询集结果

python - NumPy 中的 ndarray 和数组有什么区别?

python - 标准化 numpy 数组中的子数组长度以对其进行数学计算

python - 组合回归模型中虚拟变量的影响

javascript - 将参数从 Angularjs 传递到 Django

python - 值错误位于/addtodo/: Not able to add new items in todo-list

python - 如何使用 MySql 上的 Python Django 让应用程序在 Heroku 上运行? KeyError : '' , 代码=H10 描述 ="App crashed"

python - Django - FileField 检查是否没有

python - 使用外键保存 Django orm 模型