例:
def import_data_from_excel(conf, filename, fk_name=None, fk_value=None, is_exchange=False): def valid_date(d): try: xlrd.xldate.xldate_as_datetime(d, 0) return True except: return False def check_field_with_input(field, i): t = type(field) choices = field.__dict__["choices"] if choices: for key, value in choices: if value == i.strip(): return True if field.__dict__["null"] is True and type(i) == unicode and not i.strip(): return True return False if t in [IntegerField, FloatField, ForeignKey]: return type(i) in [float, int] if t in [CharField, TextField]: return type(i) == unicode if field.__dict__["null"] is True and type(i) == unicode and not i.strip(): return True if t == DateField: return valid_date(i) return False # 检查attributes, primary_keys, defaults 定义的数据列在表里面 def check_conf(c): obj = create_instance(c) attrs = c["attributes"].keys() + c.get("primary_keys", []) if c.get("defaults", None): attrs = attrs + c["defaults"].keys() for k in attrs: if not hasattr(obj, k): print "{} has no attr '{}', please check.".format(c["class_name"], k) return False if fk_name: if not hasattr(obj, fk_name): print "{} has no foreign key '{}', please check.".format(c["class_name