在我的项目中,有一个通过ForeignKey关系关联的Attraction模型和AttractionTag模型。每个Attraction具有相同的AttractionTag集,但仅值字段不同。 现在,我想根据特定AttractionTag的value字段订购景点。例如,每个景点都有一个名为“ modern”的AttractionTag。我想根据现代AttractionTag值字段订购景点。
我尝试过
attractions.order_by('-attractiontag__value')
但是此命令通常在AttractionTag上对景点排序,而不是基于特定的AttractionTag。
这是模特
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)
我该如何解决?
谢谢
答案 0 :(得分:0)
好的,我找到了解决方案。
tags = AttractionTag.objects.filter(attraction__city=city)
tags = tags.filter(name='modern').order_by('-value')
attraction = [tag.attraction for tag in tags]
应该工作