Django Model filters method finder

Я хотел бы узнать, есть ли способ динамически перегруппировать модель по всем доступным столбцам.

models.py

class ProductionPlan(models.Model):
    status_choices = (
        ('READY TO START', 'Ready To Start'),
        ('IN PROGRESS', 'In Progress'),
        ('PROGRESS STOPPED', 'Progress Stopped'),
        ('MAINTENANCE STOPPED', 'Maintenance Stopped'),
        ('QUALITY STOPPED', 'Quality Stopped'),
    )
    id = models.CharField(max_length=15, primary_key=True)
    first_start_date = models.DateTimeField(null=True, blank=True, default=None)
    bills_of_material = models.ForeignKey(BillsOfMaterial, on_delete=models.CASCADE)
    quantity = models.IntegerField()
    scheduled_date = models.DateTimeField()
    real_duration = models.DurationField()
    expected_duration = models.DurationField(default=None)
    start_date = models.DateTimeField(default=None, null=True)
    status = models.CharField(max_length=50, default='Ready To Start', choices=status_choices)

теперь, если я хочу фильтровать модель, я использую ProductionPlan.objects.filter(status__icontains = '')

Тогда мой вопрос заключается в том, что этот метод поиска status__icontains или любой другой (start_date_contains, expected_duration__startswith) как я могу получить эти методы.

Моя конечная точка выглядит примерно так:

def get_methods_for_filter(model):
    do something here
    return ((**start_date_contains**, **expected_duration__startswith**)

Вернуться на верх