Django Pickle Field在加载时对其模型实例的访问

我有一个自定义django字段子类,用于存储自己的腌制类。有什么方法可以设置一个model属性,该属性指向数据库每次加载时在我的腌制类上的模型实例

到目前为止,我最好的猜测是在方法内部的解开过程中,to_python但是我不确定能否Field引用模型实例


慕码人8056858
浏览 179回答 1
1回答

慕标5832272

弄清楚了!我__init__像这样覆盖了模型的方法:class MyModel(models.Model):    def __init__(self, *args, **kwargs):        # Don't do any extra looping or anything in here because this gets called        # at least once for every row in each query of this table        self._meta.fields[2].model_instance = self        super(MyModel, self).__init__(*args, **kwargs)    field1 = models.TextField()    field2 = models.PickleField()    field3 = models.DateTimeField()然后在我的字段子类中:def to_python(self, value):    # logic and unpickling, then right before your return:    if hasattr(self, 'model_instance'): # avoid AttributeError if list, dict, etc.        value.model_instance = self.model_instance    return value
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python