Формирование отчетов с использованием фильтров полей Dynami c в django - PullRequest
3 голосов
/ 26 мая 2020

Я показываю пользователю список полей модели и связанных полей. Пользователи могут установить фильтр по одному или нескольким полям. Мне нужно вернуть результаты в соответствии с этими фильтрами.

Вот моя модель сотрудника

    employeeID = models.AutoField(primary_key=True, db_index=True)
    joiningDate = models.DateField(null=True, blank=True)
    department = models.IntegerField()
    designation = models.IntegerField()
    qualification = models.CharField()
    highestDegree = models.CharField()    
    name = models.CharField(max_length=50)
    fatherName = models.CharField(max_length=50, null=True, blank=True)
    motherName = models.CharField(max_length=50, null=True, blank=True)
    dob = models.DateField(null=True, blank=True)
    gender = models.IntegerField(choices=GenderTypes.choices(), null=True, blank=True)
    religion = models.IntegerField(choices=ReligionChoices.choices())
    category = models.IntegerField(choices=CategoryChoices.choices())
    address = models.TextField(null=True, blank=True)

Помимо этих полей модели, пользователи могут применять фильтр к некоторым связанным полям, а также к зарплате, которая хранится в другой таблице с идентификатором сотрудника в качестве внешнего ключ. Фильтры могут быть конкретными значениями, а также диапазоном, как в случае зарплаты (10000 - 20000).

Я знаю, что Django не предоставляет такую ​​возможность, и мне нужно написать собственный лог c. Мне просто нужно было подтвердить, что я должен писать жестко запрограммированные logi c для каждого поля или есть способ, с помощью которого я могу узнать, принадлежит ли конкретное поле этой модели или нет. Если это не так, есть ли способ вывести отношение этого конкретного поля из модели? Сочетание этих двух вещей должно дать нам достаточно для реализации этого.

Большое спасибо за ваше время и помощь

1 Ответ

0 голосов
/ 27 мая 2020

Обратите внимание на Django -Filter , который является стандартным пакетом, используемым для фильтрации в приложениях Django.

...