示例#1
0
def get_fields_for_partial_update(opts, init_data, fields, init_files=None):
    opts = get_concrete_model(opts.model)._meta
    partial_fields = list((init_data or {}).keys()) + list((init_files or {}).keys())
    concrete_field_names = []
    for field in get_model_opts_concrete_fields(opts):
        if not field.primary_key:
            concrete_field_names.append(field.name)
            if field.name != field.attname:
                concrete_field_names.append(field.attname)
    update_fields = []
    for field_name in partial_fields:
        if field_name in fields:
            model_field_name = getattr(fields[field_name], 'source') or field_name
            if model_field_name in concrete_field_names:
                update_fields.append(model_field_name)
    return update_fields
示例#2
0
def get_fields_for_partial_update(opts, init_data, fields, init_files=None):
    opts = get_concrete_model(opts.model)._meta
    partial_fields = list((init_data or {}).keys()) + list((init_files or {}).keys())
    concrete_field_names = []
    for field in get_model_opts_concrete_fields(opts):
        if not field.primary_key:
            concrete_field_names.append(field.name)
            if field.name != field.attname:
                concrete_field_names.append(field.attname)
    update_fields = []
    for field_name in partial_fields:
        if field_name in fields:
            model_field_name = getattr(fields[field_name], 'source') or field_name
            if model_field_name in concrete_field_names:
                update_fields.append(model_field_name)
    return update_fields
 def _get_fields_for_partial_update(self):
     cls = self.opts.model
     opts = get_concrete_model(cls)._meta
     partial_fields = list((self.init_data or {}).keys()) + list((self.init_files or {}).keys())
     concrete_field_names = []
     for field in get_model_opts_concrete_fields(opts):
         concrete_field_names.append(field.name)
         if field.name != field.attname:
             concrete_field_names.append(field.attname)
     update_fields = []
     for field_name in partial_fields:
         if field_name in self.fields:
             model_field_name = getattr(self.fields[field_name], 'source') or field_name
             if model_field_name in concrete_field_names:
                 update_fields.append(model_field_name)
     return update_fields
示例#4
0
 def _get_fields_for_partial_update(self):
     cls = self.opts.model
     opts = get_concrete_model(cls)._meta
     partial_fields = list((self.init_data or {}).keys()) + list(
         (self.init_files or {}).keys())
     concrete_field_names = []
     for field in get_model_opts_concrete_fields(opts):
         if not field.primary_key:
             concrete_field_names.append(field.name)
             if field.name != field.attname:
                 concrete_field_names.append(field.attname)
     update_fields = []
     for field_name in partial_fields:
         if field_name in self.fields:
             model_field_name = getattr(self.fields[field_name],
                                        'source') or field_name
             if model_field_name in concrete_field_names:
                 update_fields.append(model_field_name)
     return update_fields