我想显示一张表中不出现在另一张表中的物品列表。但是我一直遇到错误,比如“无法解包非可迭代ManyRelatedManager对象”。
我尝试了很多django过滤器和排除的变体,但总是会出现上述错误,或者根据我尝试的其他东西而定:
User对象没有属性profile
或者
无法解包非可迭代整数对象
模型:
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显示所有不在用户资料中的物品。无论我尝试什么,似乎都不起作用,所以非常感谢任何帮助。