Django упорядочить объекты по определенному полю связанного объекта - PullRequest
0 голосов
/ 14 мая 2019

В моем проекте есть модель Attraction и модель AttractionTag, связанные через отношение ForeignKey.Каждый Аттракцион имеет одинаковый набор AttractionTag, они отличаются только полем значения.Теперь я хочу заказать Аттракционы на основе поля значения конкретного Аттракциона.Например, для каждого аттракциона есть Аттракцион с именем «современный».Я хочу заказать аттракционы на основе современного поля значений AttractionTag.

Я пробовал

attractions.order_by('-attractiontag__value')  

, но эта команда приказывает Аттракционы на Аттракционе в целом, не основываясь на конкретном Аттракционе.

Вот модели

class Attraction (models.Model) :
    city = models.ForeignKey(City, on_delete=models.CASCADE)
    name=models.CharField(max_length=50, unique=True)
    image = models.ImageField(upload_to=attractionImagePath, null=True, blank=False)
    imageTop = models.ImageField(upload_to=attractionTopImagePath, null=True, blank=True)
    pub_date = models.DateTimeField(auto_now_add=True)
class AttractionTag (models.Model):
    attraction=models.ForeignKey(Attraction, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    value=models.IntegerField(default=0)

Как можно решить?

Спасибо

1 Ответ

0 голосов
/ 14 мая 2019

Хорошо, я нашел решение.

tags = AttractionTag.objects.filter(attraction__city=city)  
tags = tags.filter(name='modern').order_by('-value')
attraction = [tag.attraction for tag in tags]

Должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...