如果Django中的对象很少,如何仅显示一个对象?

2024-09-28 05:40:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用一个列表,但它仍然显示所有的值

allexpelorer1    = Destination.objects.filter(destination = pk).order_by('-pk')
allexpelorer = []
for checkhu in allexpelorer1:
    if Destination.objects.filter(destination = pk, user_pk = checkhu.user_pk) not in allexpelorer:
        allexpelorer.append(checkhu)

Tags: in列表forbyifobjectsorderfilter
1条回答
网友
1楼 · 发布于 2024-09-28 05:40:50

从你的问题中,我了解到:

游客写下他们访问过的国家的体验。因此,很明显,游客可以写多篇评论

表结构应如下所示:

CustomerReviewTable/CountryProfileTable

enter image description here

旅游者之一已经为两国写了三封信

游客二号为每个国家写了一封信

以下是您应该遵循的查询:

country = 1 # Denmark
max_ids = Yourmodel.objects.filter(country = country).values('tourist','country').annotate(max_id=Max('pk')).values('max_id')

然后再次查询

result = Yourmodel.objects.filter(id__in = max_ids)

上述结果查询集将返回您的预期结果。

-当国家1通过时:

丹麦|评论1 |旅游| 1

丹麦|回顾4 |旅游| 2

-当国家2通过时:

意大利|评论3 |旅游|

意大利|回顾5 |旅游| 2

现在,这不会带来任何重复的评论/评论。

相关问题 更多 >

    热门问题