【问题标题】:django: filter based on valuesdjango:根据值过滤
【发布时间】:2013-08-24 18:35:07
【问题描述】:

我需要获取一组值,在这种情况下,使用 values() 或 values_list() 获得的 LiquorInStore 中的外键 LiquorID 并使用它们按其父数据库 Liquor 的 ID 过滤结果并将其返回给网页。

这是视图,我担心我可能没有正确使用变量。

def store(request, store_id=1):
    a = Store.objects.get(StoreID=store_id) 
    b = LiquorInStore.objects.filter(storeID__exact=a).values('liquorID')
    args = {}

    args['liquors'] = Liquor.objects.filter(id__exact=b)
    args['a'] = a

    return render(request, 'store.html', args)

这也是模型文件,以防万一。

class LiquorInStore(models.Model):
    StoreLiquorID = models.AutoField(primary_key=True)
    liquorID = models.ForeignKey(Liquor)
    storeID = models.ForeignKey(Store)
    StorePrice = models.DecimalField('Store Price', max_digits=5, decimal_places=2)

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    这样做:

    b = LiquorInStore.objects.filter(storeID__id=a.id).values_list('liquorID', flat=True)
    args['liquors'] = Liquor.objects.filter(id__in=b)
    

    【讨论】:

    • 我刚刚想出了相同的解决方案,并且正要发布它。谢谢。
    猜你喜欢
    • 2018-11-07
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2021-04-02
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多