Django-无法解压缩不可迭代的ManyRelatedManager对象

莫莫扎尔

因此,我试图显示一个表中没有出现在另一个表中的项目的列表。但是我不断收到错误消息,例如“无法解压不可迭代的ManyRelatedManager对象”

我已经尝试过django过滤器的许多变体并排除了它,但是总是存在上述错误或其他我尝试过的错误:用户对象没有属性配置文件或无法解压缩不可迭代的int对象

楷模:

class Item(models.Model):
    item_name = models.CharField(max_length=200)    
    def __str__(self):
        return self.item_name
    class Meta:
        verbose_name = "Item"
        verbose_name_plural = "Items"



class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="user") 
    items = models.ManyToManyField(Item)

    class Meta:
        verbose_name = "Profile"
        verbose_name_plural = "Profiles"

观看次数:

python
@login_required
def item_view(request):
    if request.method == 'GET':
    user_obj = request.user.user
        items = Item.objects.filter(user_obj.items)
        context_dict = {'items': items}
        return render(request, 'site/items.html', context_dict)
    else:
        return HttpResponseNotFound()

items.html:

{% for i in items%}
      <li><input type="checkbox" data-pk="{{i.pk}}" name="{{i.item_name}}" value="{{i.pk}}" onchange="processChange(this)"> {{i.item_name}}<br>
      </li>
{% endfor %}

目标是使items.html显示不在用户个人资料中的所有项目。我似乎尝试的所有方法似乎均不起作用,因此非常感谢您的帮助。

你是

更换:

items = Item.objects.filter(user_obj.items)

带有:

user_items = Items.objects.filter(profile=user_obj)
items = Items.objects.exclude(pk__in=user_items)

user_items将包含一个查询集,其中包含ItemUserin有关的所有对象user_obj

items将包含一个包含所有Item对象的查询集,但不包括Userin有关的对象user_obj

您收到错误是因为filter()需要模型中的字段:

  • filter(user='some user')

有关如何进行查询的更多信息,请参阅文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django无法解压缩不可迭代的'Q'对象

Django:无法解压缩不可迭代的int对象

Django:无法解压缩不可迭代的int obj

TypeError:无法在Django视图函数中解压缩不可迭代的int对象

无法在 django 中解压不可迭代的 ModelBase 对象

无法解压缩不可迭代的datetime.date对象

tensorflow TypeError:无法解压缩不可迭代的浮点对象

TypeError:无法解压缩不可迭代的NoneType对象

TypeError:无法解压缩不可迭代的int对象

Python-无法解压缩不可迭代的int对象

Python:TypeError:无法解压缩不可迭代的int对象

Python TypeError:无法解压缩不可迭代的布尔对象

Django-(限制被阻止用户的内容)无法解包不可迭代的ManyRelatedManager对象

Django urlpatterns-太多值无法解压缩

我在Queryset的Django 3.0上收到“'ManyRelatedManager'对象不可迭代”错误,该对象返回对象列表

无法解压缩不可迭代的numpy.float64对象python3 opencv

numpy array,TypeError:无法解压缩不可迭代的numpy.int64对象

TypeError:运行排序功能时无法解压缩不可迭代的NoneType对象

无法解压缩不可迭代的int对象。BMI计算器

通过模型过滤器渲染 ManyToManyField - Django:'ManyRelatedManager' 对象不可迭代

如何在使用自定义用户模型时修复django admin中的“无法解压不可迭代的NoneType对象”错误

Django:对象不可迭代

无法将 django 上下文数据解压缩到呈现热图的模板中

(TypeError:无法解压缩不可迭代的int对象)使用合并排序的反转计数器

无法解压缩不可迭代的布尔对象(尝试过滤在auth> User模块中注册的用户的结果时)

当我在终端“ TypeError:无法解压缩不可迭代的NoneType对象”中运行代码时,会发生此错误

无法解压缩不可迭代的numpy.float64对象:Tensorflow 2.0中的Keras数据集

django multiwidget解压缩值为None

错误迭代一个列表“类型错误:无法解压缩非迭代的对象”