2010-04-19 70 views
0

我想寫一個像下面這樣的字段列表(所有字段的一個子集)作爲參數傳入並具有它們的方法列值設置爲空。我會很高興能得到一個只有字段的方法,如下面的參數,但將模型作爲參數會更好。嘗試Nullify Django模型字段的方法,其中模型和字段是參數

從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) 

等,這是可怕的,但工程。

回答

0

它在the tutorial

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