Объединить два разных поля результата django Запрос - PullRequest
1 голос
/ 30 апреля 2020

У меня есть модель, из которой я хочу получить данные в одном и том же объекте (JSON) У меня есть эта модель

class Suggestion(models.Model):
   city = models.CharField(max_length=250 , null=True , blank=True)
   name = models.CharField(max_length=250 , null=True , blank=True)

Теперь я буду запрашивать вот так

           name = Suggestion.objects.filter(name__icontains=search)
           city = Suggestion.objects.filter(city__icontains=search)
           Name=nameSeilizerr(activities,many=True)
           serializer=CitySeilizer(city,many=True)

В сериализаторе я отправлю только имя в Nameserializer и город в городе Serilizer.

Основная идея - я хочу предложить пользователю либо его Имя, либо название города в поле. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 30 апреля 2020

Вы можете использовать Q объекты для поиска Suggestion s, где name или city соответствуют (или оба):

from django.db.models import Q

suggestions = Suggestion.objects.filter(
    <b>Q(name__icontains=search) |
    Q(city__icontains=search)</b>
)
serializer=CitySerializer(suggestions, many=True)
...