0

例如,如果我有这样的 models.py:

Handler(models.Model):
    model1 = ForeignKey(Model1)
    model2 = ForeigKey(Model2)
    user = models.ForeignKey(User)

例如,有 100 个 Handler 实例,Model1 id = 1,但是这 100 个实例的 Model 2 id 在 1 到 5 之间。当我做这样的事情时:

Handles.objects.filter(model1=1).values_list('model2_id', flat=True)

它返回 5 个 id 值的列表或 100 个 id 值的列表,哪些是重复的?如果它返回 100 个值,是否有可能为每个重复值保留一个值?

4

1 回答 1

1

它将返回 100 个 id 值的列表。如果你想得到唯一的 5 个,那么你可以在 python 中做到这一点。

model2_id_uniq_values = list(set(Handles.objects.filter(model1=1).values_list('model2_id', flat=True)))

它可能不是最精细调整的算法,并且通过使用集合,您将失去顺序。但就您的目的而言,它似乎有效。

于 2011-07-05T16:34:12.653 回答