#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?