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**)