[英]django return foreign key object from queryset?
所以我有三個型號
class Post(....
class Project(....
# have a many to many relationship
class ProjectPost(....
post = ..... # foreignkey
project = .... # foreignkey
我想要選擇的數據集是給定Project對象的Post對象列表。
這是我試過的:
posts_list = ProjectPost.objects.filter(project=project_object).select_related("post")
但是這會返回ProjectPost對象的列表,而不是Post對象的列表。 這樣做的正確方法是什么?
您可能想要使用ManyToManyField()
https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/
你應該這樣做:
class Post(models.Model):
pass
class Project(models.Model):
posts = models.ManyToManyField(Post)
然后,如果您想訪問項目的帖子,您可以這樣做
project_obj.posts.all()
您可以使用所有Queryset方法
如果您想訪問帖子的項目,您可以這樣做
post_obj.project_set.all()
與以前一樣,您可以使用所有Queryset方法。
如果出於任何原因你想這樣做,你可以這樣做:
post_list = ProjectPost.objects.filter(project=project_object).values('post')
最近我自己遇到了這個問題,這就是我解決它的方法。 如果有人可以評論我的解決方案是否有效,那就太喜歡了。
project_posts = ProjectPost.objects.filter(project=project_object).select_related("post")
posts_lists = map(lambda post: project.post, project_posts)
posts_lists中的對象現在具有正確的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.