我有以下Django模型
class TestModel(models.Model):
company_name = models.CharField(max_length=100)
nick_name = models.CharField(max_length=100)
created_at = models.DateTimeField()
现在我想创建一个查询/多个查询,它将所有TestModel对象分组到特定的company_name
。简而言之,它将具有以下结构。
out - {
"company_name_test_1": [TestModel1, TestModel2, TestModel3],
"company_name_test_2": [TestModel4, TestModel5, TestModel6],
}
答案 0 :(得分:0)
companyNames = ["a", "b", "c"]
result = {}
for name in companyNames:
result[name] = list(TestModel.objects.filter(company_name = name))
如果要将字典保存为JSON或类似字体,则需要先对序列化的模型进行序列化。
此外,根据您的计划的逻辑,可能值得拥有一家公司'模型,并将TestModels作为其各自公司的外键。
class Company(models.Model):
name = models.CharField(max_length = 100)
# other fields and functions
class TestModel(models.Model):
company = models.ForeignKey(Company)
nick_name = models.CharField(max_length=100)
created_at = models.DateTimeField()
然后你可以通过外键过滤来获得公司的测试模型:
results = {}
for company in Company.objects.all():
results[company.name] = list(company.testmodel_set.all())