【问题标题】:Writing a custom update method for a model in django在 django 中为模型编写自定义更新方法
【发布时间】:2018-11-03 06:13:57
【问题描述】:

我想为我的模型编写一个自定义更新方法。 基本上,我想确保传递给此方法的字段是此模型中存在的字段。 我想出了这样的东西

def update(self,dict):
    #Check if the fields in this data are present in this model
    for key in data:
        if not hasattr(self, key):
            #This property is not present
            data.pop(key)
    self.update(data)

但是当我做这样的事情时

modelMyobject.objects.filter(xxxxx).update(**dict)

这个方法永远不会被调用。关于我可以做些什么来解决这个问题的任何建议?

【问题讨论】:

    标签: python django django-models filter


    【解决方案1】:

    您正在Querysets 中运行您的模型方法,因此请尝试以下任一方法:

    for i in modelMyobject.objects.filter(xxxxx):
         i.update(**dict)
    

    或者写Custom Django Model Manager

    【讨论】:

    • 看来我需要一个自定义 Django 模型管理器。我的模型已经有一个 objects = GeoManager() 我如何为我的自定义管理器创建另一个?
    • 您可以覆盖 GeoManager 并在其中放置更新方法
    • 我将此标记为答案,我将发布一个新问题
    猜你喜欢
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    相关资源
    最近更新 更多