【问题标题】:I trial get all comments for Post and add user in NotfFaId ,我尝试获取 Post 的所有评论并在 NotfFaId 中添加用户,
【发布时间】:2021-04-18 12:54:57
【问题描述】:

我尝试为 Post 获取所有 cmets 并在 NotfFaId 中添加用户我不明白如何修复它。 , 精确查找的 QuerySet 值必须使用切片限制为一个结果。

def topic_single(request, post):

    post = get_object_or_404(Topic, slug=post, status='published')
    postcat = Topic.objects.filter(category=post.category)
    # print(post.comments.all())

    fav = bool
    random_items = Topic.newmanager.all().order_by('?')[0:9]

    if post.favourites.filter(id=request.user.id).exists():
        fav = True
 
    session_key = 'view_post_{}'.format(post)
    if not request.session.get(session_key,False):
        post.views +=1
        post.save()
        request.session[session_key] = True
    
    allcomments = post.comments.filter(status=True)

    CommentT.objects.get(id=allcomments).NotfFaId.add(request.user)


    comment_form = NewCommentTForm()

    return render(request, 'forum/detail.html', {'post': post, 'comment_form': comment_form, 'allcomments': allcomments,
    'random_items': random_items,
    'Category': Category.objects.all(),'Category2': postcat, 
    'fav': fav})

型号

class CommentT(MPTTModel):
    Topic = models.ForeignKey(Topic, on_delete=models.CASCADE, related_name='comments')
    author = models.ForeignKey( User, on_delete=models.CASCADE, related_name='author')
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
    NotfFaId = models.ManyToManyField( User, related_name='NotfFaVId', default=None, blank=True)
   
    content = models.TextField()
    publish = models.DateTimeField(auto_now_add=True)
    status = models.BooleanField(default=True)

    class MPTTMeta:
        order_insertion_by = ['publish']

【问题讨论】:

    标签: python django model


    【解决方案1】:

    我修好了

    def topic_single(request, post):
    
        post = get_object_or_404(Topic, slug=post, status='published')
        postcat = Topic.objects.filter(category=post.category)
        # print(post.comments.all())
    
        fav = bool
        random_items = Topic.newmanager.all().order_by('?')[0:9]
    
        if post.favourites.filter(id=request.user.id).exists():
            fav = True
     
        session_key = 'view_post_{}'.format(post)
        if not request.session.get(session_key,False):
            post.views +=1
            post.save()
            request.session[session_key] = True
        
        allcomments = post.comments.filter(status=True)
        for e in allcomments:
            CommentT.objects.get(id=e.pk).NotfFaId.add(request.user)
    
    
        comment_form = NewCommentTForm()
    
        return render(request, 'forum/detail.html', {'post': post, 'comment_form': comment_form, 'allcomments': allcomments,
        'random_items': random_items,
        'Category': Category.objects.all(),'Category2': postcat, 
        'fav': fav})
    

    【讨论】:

      猜你喜欢
      • 2022-11-20
      • 1970-01-01
      • 2014-09-06
      • 2018-08-16
      • 1970-01-01
      • 2013-08-01
      • 2014-08-08
      • 2020-04-28
      • 2015-10-20
      相关资源
      最近更新 更多