python - 如何在 Django 中的产品过滤功能中获取公司名称?

标签 python django filter model

我想获取一个 JSON 字典,其中包含所有产品名称,包括相应的公司名称(请参阅“我想要的输出”部分)。我的搜索/过滤功能将数字返回为公司,这是错误的(请参阅“我有的输出”部分)。谢谢!

产品型号

class Product(models.Model):
    name = models.CharField(max_length=150)
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

公司模式

class Company(models.Model):
    name = models.CharField(max_length=150)

搜索/过滤功能

product_names = Product.objects.filter(name__startswith=request.GET.get('query')).values('name', 'company')

我有输出

{"products": [{"name": "bla 2", "company": 3}, {"name": "bla 1", "company": 10}]}

我想要的输出

{"products": [{"name": "bla 2", "company": "apple"}, {"name": "bla 1", "company": "samsung"}]}

最佳答案

这就是解决我的问题的方法:

product_names = Product.objects.filter(name__startswith=request.GET.get('query'))
.values('name', 'company__name'))

关于python - 如何在 Django 中的产品过滤功能中获取公司名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616774/

相关文章:

Django - 日期时间小工具格式

javax.servlet.FilterChain 在 Firefox 中将 ContentType 设置为 text/plain

python - 根据新数据点更新预先训练的深度学习模型

python - 使用 Python 导航 FTP 中的最大日期目录

jquery - Django 框架中的 Ajax Post?

css - 如何使模糊效果在 IE 中工作

javascript - 从 HTML 表中选择仅具有指定值的行?

python - 如何为列表中的每个项目添加一个 boolean 值?

python - 如何使用scrapy获取元素的内部html

python - 使用 django-pipeline 动态压缩静态文件