【发布时间】:2018-11-18 05:37:37
【问题描述】:
我的模型如下:
class ProjectRecord(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE, null=True, blank=True,related_name='user_projects')
project = models.ForeignKey(Project,on_delete=models.CASCADE, null=True, blank=True, related_name='user_projects')
project_type = models.CharField(max_length=30, choices=(("project_a","A"),("project_b","B")),null=True)
version = models.FloatField(null=True, blank=True)
我想用project = list(ProjectRecord.objects.filter(user=self.request.user, project_type='project_a'))过滤最新版本的值,但我不知道如何实现。数据库中的数据类似如下:
id project_id version project_type
1 5 1.0 project_a
2 5 1.0 project_b
3 4 1.0 project_a
4 4 1.0 project_b
5 5 2.0 project_a
6 5 2.0 project_b
7 5 3.0 project_a
8 5 3.0 project_b
例如,我想获取project_id=5 的最新值以精确匹配其他数据,并且如果它们的版本没有更新,则不删除其他project_id 的值,查询集应显示如下
id project_id version project_type
1 4 1.0 project_a
2 4 1.0 project_b
3 5 3.0 project_a
4 5 3.0 project_b
非常感谢您的任何建议和帮助。
【问题讨论】:
标签: django python-3.x filter django-queryset exact-match