💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ محمدرضا نصیری
check range in search
جامعه پایتون (وب) ایجاد شده در ۲۷ اسفند ۱۳۹۹

سلام
انجام تسک این جلسه : چک کردن رنج در سرچ
و and کردن خصوصیات در search به جای or کردنشان

 

البته بنظرم راه بهینه‌تری هم برای اینکار وجود داره

 

def search(self, **kwargs):
    results = list()
    objects = self._class.objects_list
    for key, value in kwargs.items():
        if key.endswith('__min'):
            key = key[:-5]
            compare_key = 'min'
        elif key.endswith('__max'):
            key = key[:-5]
            compare_key = 'max'
        else:
            compare_key = 'equal'
        if results:
            objects.clear()
            for obj in results:
                objects.append(obj)
            results.clear()
        for obj in objects:
            if hasattr(obj, key):
                if compare_key == 'min':
                    result = getattr(obj, key) >= value
                elif compare_key == 'max':
                    result = getattr(obj, key) <= value
                else:
                    result = getattr(obj, key) == value
                if result:
                    results.append(obj)
    return results