diff --git a/apps/dyn_dt/routes.py b/apps/dyn_dt/routes.py index 74a713a..3b9b8ef 100644 --- a/apps/dyn_dt/routes.py +++ b/apps/dyn_dt/routes.py @@ -103,8 +103,9 @@ def model_dt(aPath): fk_fields = get_model_fk_values(aModelClass) db_filters = [] for f in db_fields: - if f not in fk_fields.keys(): - db_filters.append( f ) +# if f not in fk_fields.keys(): + db_filters.append( f ) + db_fields.extend(list(fk_fields.keys())) choices_dict = {} for column in aModelClass.__table__.columns: @@ -252,16 +253,19 @@ def update(aPath, id): if request.method == 'POST': for attribute, value in request.form.items(): - if hasattr(item, attribute) and getattr(item, attribute, value) is not None: + if hasattr(item, attribute) and (value != "" or getattr(item, attribute, value) is not None): if attribute in fk_fields.keys(): + old_value = value table_name = None for product in fk_fields[attribute]: table_name = product.__class__.__tablename__ if table_name: model_name = config.Config.DYNAMIC_DATATB[table_name] value = name_to_class(model_name).query.filter_by(id=value).first() - - setattr(item, attribute, value) + if value != getattr(item, attribute, old_value): + setattr(item, attribute, value) + elif value != getattr(item, attribute, value): + setattr(item, attribute, value) db.session.commit() @@ -352,3 +356,4 @@ def getenumattribute(value, arg): @blueprint.app_template_filter('get') def get(dict_data, key): return dict_data.get(key, []) + diff --git a/templates/dyn_dt/model.html b/templates/dyn_dt/model.html index 25eec1a..c09b320 100644 --- a/templates/dyn_dt/model.html +++ b/templates/dyn_dt/model.html @@ -228,8 +228,9 @@