【发布时间】:2021-05-11 10:47:37
【问题描述】:
我如何在主页视图中获取对象的 pk,我尝试用帖子制作个人博客,并且此帖子包括 cmets,我尝试获取帖子 pk 以获取与该帖子相关的 cmets,但我失败了
首先,我尝试通过将其添加到 def home_view(request, pk) 来获取 pk,但主页中的此模板 www.mywebsite.com 这意味着我知道,我无法将 pk 传递给 url,所以这对我来说失败了
我的问题是如何从主页视图中获取帖子的 ID?
我的主页视图
post = []
for u in users:
p = Account.objects.get(username=u)
posts = p.post_set.all()
post.append(posts)
if len(video):
video = sorted(chain(*video), reverse=True, key=lambda video: video.created_date)
# here I tried to get the pk
comma = Post.objects.all()
our_post = Post.objects.get(pk=comma.pk)
comment = PostCommentIDF.objects.filter(post=our_post)
我的帖子模型
class Post(models.Model):
author = models.ForeignKey(Account, on_delete=models.CASCADE)
article = models.TextField(null=True, blank=True)
photo_article = models.ImageField(max_length=255, upload_to=get_poster_filepath)
created_date = models.DateTimeField(auto_now_add=True)
我的评论模型
class PostCommentIDF(MPTTModel):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='pos_com')
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='post_children')
author = models.ForeignKey(Account, on_delete=models.CASCADE)
content = models.TextField()
created_date = models.DateTimeField(auto_now_add=True)
status = models.BooleanField(default=True)
主页视图网址
path('', home_screen_view, name='home'),
【问题讨论】:
-
comma = Post.objects.all()返回QuerySet。它类似于列表或数组。属性pk位于该“数组”中的每个项目上,而不是数组本身。 -
@zelenyjan 随时将其发布为答案..
-
@zelenyjan 有没有办法获取帖子项目pk并在评论中使用它
comment = PostCommentIDF.objects.filter(post=post.pk)
标签: django django-models django-views django-forms django-templates