получить похожие задачи в django

#django #django-rest-framework

#django #django-rest-framework

Вопрос:

У меня есть модель, подобная

 class Tasks(models.Model):
    title = models.CharField(max_length=100,null=True,blank=True)
 
  

Теперь я хочу вернуть список всех одинаковых задач. подобные две задачи A and B считаются похожими, если все слова в задаче A существуют в задаче B или наоборот.

как я могу достичь этого в django orm или любым другим способом сделать это?

Комментарии:

1. Добро пожаловать в StackOverflow! Вы могли бы реализовать, staticmethod что бы фильтровать объекты в вашей Task модели с помощью title__contains базового экземпляра title .

2. @Rfroes87 новое в django, сэр: ( не могли бы вы привести пример, пожалуйста. это было бы высоко оценено

3. Для некоторого поиска ссылки.

4. @Rfroes87 Я знаю об этом, но проблема в том, что если у меня есть 50 задач, как я буду разделять их на основе сходства?

Ответ №1:

Я не могу протестировать это решение прямо сейчас, но просто чтобы привести реальный пример того, что я говорил в комментариях, вот мое предложение:

Добавьте это в свою Tasks модель

 class Tasks(models.Model):
    title = models.CharField(max_length=100, null=True, blank=True)

    @staticmethod
    def find_common_tasks(title, pk=0):
        tasks = Tasks.objects.filter(title__contains=title)
        return tasks.exclude(pk=pk) if pk > 0 else tasks
  

Теперь вы могли бы вызвать метод, подобный этому, например:

 task = Tasks.objects.get(pk=1)
Tasks.find_common_tasks(pk=task.pk, title=task.title)
  

или просто Tasks.find_common_tasks(title="Some title") .

Комментарии:

1. Как это получилось @new1122?