【问题标题】:Trying to Nullify Django model fields with method where model and fields are parameters尝试使用模型和字段为参数的方法来取消 Django 模型字段
【发布时间】:2011-02-09 18:06:13
【问题描述】:

我正在尝试编写如下方法,其中将字段列表(所有字段的子集)作为参数传入,并将其列值设置为 null。我很高兴我可以得到一个只使用字段作为参数的方法,如下所示,但是将模型作为参数会更好。

从 my_project.my_app.models 导入 MyModel

def nullify_columns (self, null_fields):
    field_names = MyModel._meta.get_all_field_names()
    for field in field_names:
        if field in null_fields:
            # The below line does not work because I'm not sure how to 
            # dynamically assign the field name.
            MyModel.objects.all().update( (MyModel.get_field(field).column) = None) 

现在我有类似的东西

if 'column1' in list_of_fields:
    MyModel.objects.all().update(column1 = None) 
if 'column2' in list_of_fields:
    MyModel.objects.all().update(column2 = None)

等等。这是可怕的,但有效。

【问题讨论】:

    标签: django model null field


    【解决方案1】:

    the tutorial:

    MyModel.objects.all().update(**dict.fromkeys(null_fields))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-27
      • 2016-08-11
      • 2012-08-09
      • 1970-01-01
      • 2021-08-24
      • 2020-07-07
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多