【发布时间】:2017-12-17 20:53:11
【问题描述】:
您好,希望有人能帮助我应对这一挑战。 收到此错误 - 'tuple' 对象不支持项目分配
我正在尝试在我使用 GenericForeignKey 的模型中获取我关注的用户的帖子
错误指向第一个语句。 - ({% for post in posts_list %})
{% for post in posts_list %}
{{ post.title }}
{% endfor %}
views.py
class UserPostsBoardView(View):
def get(self, request, *args, **kwargs):
Context = {}
# the users i'm following
im_following = self.request.user.profile.following.all()
query_set = Post.objects.filter(User__name__contains=im_following)
Context["posts_list"] = query_set
return render(request,"posts/user/user_board.html", Context)
posts/models.py
class Userposts(models.Model):
name = models.CharField(max_length=10, default="User")
val_obj = GenericRelation(Post, object_id_field="object_id",
related_query_name="User")
userprofiles/models.py
class Userprofiles(models.Model):
user = models.OneToOneField(User, related_name="profile")
following = models.ManyToManyField(User, blank=True, related_name="follow")
def __str__(self):
return str(self.following.all().count())
追溯:
文件 "C:\Program Files\Python35\lib\site-packages\django\core\handlers\exception.py" 在 内 41. response = get_response(request)
文件 "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" 在 _legacy_get_response 249. response = self._get_response(request)
文件 "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" 在 _get_response 187. response = self.process_exception_by_middleware(e, request)
文件 "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" 在 _get_response 185. response = Wrapped_callback(request, *callback_args, **callback_kwargs)
文件 "C:\Program Files\Python35\lib\site-packages\django\views\generic\base.py" 在视图中 68. return self.dispatch(request, *args, **kwargs)
文件 "C:\Program Files\Python35\lib\site-packages\django\views\generic\base.py" 在 派遣 88. return handler(request, *args, **kwargs)
文件 "C:\Users\wahab\Desktop\site1\ostra\ostrakodecommerce\posts\views.py" 在得到 75. return render(request,"posts/user/user_board.html", Context)
文件“C:\Program Files\Python35\lib\site-packages\django\shortcuts.py” 在渲染中 30. content = loader.render_to_string(template_name, context, request, using=using)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\loader.py" 在 渲染到字符串 68. return template.render(context, request)
文件 "C:\Program 文件\Python35\lib\site-packages\django\template\backends\django.py" 在渲染中 66. return self.template.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 207. return self._render(context)
文件 "C:\Program _render 中的 Files\Python35\lib\site-packages\django\template\base.py" 199. return self.nodelist.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 990. bit = node.render_annotated(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在 渲染注释 957. return self.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" 在 使成为 177. 返回已编译的_parent._render(context)
文件 "C:\Program _render 中的 Files\Python35\lib\site-packages\django\template\base.py" 199. return self.nodelist.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 990. bit = node.render_annotated(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在 渲染注释 957. return self.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" 在 使成为 72. 结果 = block.nodelist.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 990. bit = node.render_annotated(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在 渲染注释 957. return self.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" 在 使成为 216. 返回模板.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 209. return self._render(context)
文件 "C:\Program _render 中的 Files\Python35\lib\site-packages\django\template\base.py" 199. return self.nodelist.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在渲染中 990. bit = node.render_annotated(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\base.py" 在 渲染注释 957. return self.render(context)
文件 "C:\Program Files\Python35\lib\site-packages\django\template\defaulttags.py" 在 使成为 173. len_values = len(值)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" in len 232. self._fetch_all()
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" 在 _fetch_all 1105. self._result_cache = list(self._iterable_class(self))
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" 在 迭代 53. 结果 = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" 在 执行_sql 863. sql,参数 = self.as_sql()
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" 在 as_sql 420. where, w_params = self.compile(self.where) if self.where is not None else("", [])
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" 在 编译 373. sql, params = node.as_sql(self, self.connection)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\where.py" 在 as_sql 79. sql, params = compiler.compile(child)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" 在 编译 373. sql, params = node.as_sql(self, self.connection)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\lookups.py" 在 as_sql 170. rhs_sql, rhs_params = self.process_rhs(编译器, 连接)
文件 "C:\Program Files\Python35\lib\site-packages\django\db\models\lookups.py" 在 进程_rhs 433. params[0] = "%%%s%%" % connection.ops.prep_for_like_query(params[0])
异常类型:TypeError at /profile/-.1/public_board 异常 值:“元组”对象不支持项分配
【问题讨论】:
-
你能说明你是如何提供
posts_list的吗? -
您能否也发布完整的回溯?
-
请显示视图渲染posts_list。
-
发布完整的回溯
-
这里的“上下文”是什么?它似乎没有在您的视图中定义。
标签: python django python-3.x django-models django-templates