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/