3
我有以下相關機型:QuerySet獲取用戶聯繫人的所有屬性?
class PositionTimestamp(models.Model):
timestamp = models.DateTimeField(auto_now_add=True)
position = models.ForeignKey('Position')
profile = models.ForeignKey('UserProfile')
class Position(models.Model):
position = models.CharField(max_length=100)
ordering = models.IntegerField(max_length=3)
select_display = models.CharField(max_length=100)
class UserProfile(models.Model):
def mutual_contacts(self):
# returns all of the current User's contacts. A QuerySet of UserProfile objects.
我想獲得的所有position
S代表給定用戶的mutual_contacts
。這是我目前(效率低下)做的:
>>> p = UserProfile.objects.get(id=1)
>>> position_set=[]
>>> for profile in p.mutual_contacts():
position_set.append(p.positiontimestamp_set.all())
>>> position_set
[[<PositionTimestamp: PositionTimestamp object>, <PositionTimestamp:
PositionTimestamp object>, <PositionTimestamp: PositionTimestamp object>]]
>>> position_set = set([item.position for item in position_set[0]])
>>> position_set
set([<Position: Director>, <Position: Writer>, <Position: Editor>])
QuerySet可以用來得到相同的?