繁体   English   中英

如何将 django 对象动态添加到查询集中

How to dynamically add django objects to a queryset

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

这是我的models.py

class Article(models.Model):
     title = models.CharField(max_length=100) #The title of the article

     # This is to count the number of users who have viewed the article
     viewed_user = models.ManyToManyField(User,related_name='viewed_user',blank=True)

我正在尝试在 views.py 中添加逻辑,当用户访问特定文章时,如果用户不在 views_user 列表中,则该用户会添加到那里。

这是我在 views.py 中尝试过的

    article = get_object_or_4040(Article,id=id)
    if user in article.viewed_user.get_queryset():
        print("User has already viewed the article")
    else:
        article.viewed_user.create(user=user) # THrows an error

但是当我尝试、更新、创建、设置、附加时,我遇到了很多类型的错误......

任何帮助将不胜感激谢谢。

1 个回复

其实,我已经想通了。 主要问题是这个错误

禁止直接分配给多对多集合的背面。 使用 views_user.set() 代替。

所以我所做的是使用添加。 例如在我上面的views.py中的问题

 class Article(View):
     def get(self,request,id=None):
         article = get_object_or_404(Article,id=id)
         user = self.request.user
         if user in article.viewed_user.all():
            print('user in viewed_user')
         else:
            article.viewed_user.add(user) #The updated Code

现在对我有用。 我希望有一天它会帮助某人。 和平

3 Django如何在Queryset中过滤对象

我知道在QuerySet中过滤项目的常规方法如下所示: 如果我有一个看起来像这样的模型怎么办: 我想获取所有其parent_id为Sports的商品。 在这种情况下,我将获得足球和篮球。 我尝试了类似的东西 但这没有用。 有人可以告诉我正确的方法吗? 非常感谢 ...

4 django - 将计算列动态添加到queryset

我有一个数据库表,包含4个表示版本信息的整数列 - Major,Minor,Cust,Rev。 我希望将这些表示为我的表单中的单个列,以及相关的填充。 所以:0,1,2,3 = [0.01.002.0003]。 我意识到有几种方法可以使用SQL来做到这一点,但我很好奇是否有可能在d ...

2010-07-20 10:52:47 1 9049   django
5 手动创建Django QuerySet或者手动将对象添加到QuerySet

基本上我需要一种优雅的方式来做到以下几点: - 我可能没有想到,但对我来说做类似的事情对我来说似乎无比愚蠢: - 是的,我需要最终使用Model2的QuerySet供以后使用(特别是传递给Django表单)。 在上面的第一个代码块中,即使我使用filter而不是get我 ...

9 Django对象queryset

我有一个关于Django查询的问题。 我有这样的查询: 这将返回类似: 我想要做的是获取这些小数的标准偏差,但我似乎无法弄清楚如何从字典中将它们获取为列表中的小数。 我尝试了一个for语句,但是它不起作用,并且列表理解返回: 使用此代码: 我做错了吗? 如果 ...

10 Django在queryset对象上排序

我下面有下面的管理操作,该操作将数据导出到CSV文件,我正在努力找出如何在queryset参数上进行排序: 我认为以下方法会有效: queryset = queryset.objects.order_by('practice') 但是我收到以下错误: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM