[英]Getting this error - 'tuple' object does not support item assignment
您好希望有人能幫助我應對這一挑戰。 收到此錯誤-'tuple'對象不支持項目分配
我正在嘗試在使用GenericForeignKey的模型中獲取我關注的用戶的帖子
錯誤指向第一個語句。 -( {%for 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())
追溯:
內部文件41中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ core \\ handlers \\ exception.py”。response = get_response(request)
_legacy_get_response 249中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ core \\ handlers \\ base.py”。response = self._get_response(request)
_get_response 187中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ core \\ handlers \\ base.py”。response = self.process_exception_by_middleware(e,request)
_get_response 185中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ core \\ handlers \\ base.py”。response = wrapd_callback(request,* callback_args,** callback_kwargs)
視圖68中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ views \\ generic \\ base.py”。return self.dispatch(request,* args,** kwargs)
分派88中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ views \\ generic \\ base.py”。返回處理程序(請求,* args,** kwargs)
獲取75中的文件“ C:\\ Users \\ wahab \\ Desktop \\ site1 \\ ostra \\ ostrakodecommerce \\ posts \\ views.py”。返回渲染(請求,“ posts / user / user_board.html”,上下文)
渲染30中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ shortcuts.py”。content = loader.render_to_string(模板名稱,上下文,請求,使用=使用)
render_to_string 68中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ loader.py”。return template.render(context,request)
渲染66中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ backends \\ django.py”。返回self.template.render(context)
渲染207中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。返回self._render(context)
_render 199中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.nodelist.render(context)
渲染990中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。bit = node.render_annotated(上下文)
render_annotated 957中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.render(context)
渲染177中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ loader_tags.py”。返回created_parent._render(context)
_render 199中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.nodelist.render(context)
渲染990中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。bit = node.render_annotated(上下文)
render_annotated 957中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.render(context)
渲染72中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ loader_tags.py”。result = block.nodelist.render(context)
渲染990中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。bit = node.render_annotated(上下文)
render_annotated 957中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.render(context)
渲染器216中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ loader_tags.py”。return template.render(context)
渲染器209中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。返回self._render(context)
_render 199中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.nodelist.render(context)
渲染990中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。bit = node.render_annotated(上下文)
render_annotated 957中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ base.py”。return self.render(context)
渲染173中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ template \\ defaulttags.py”。len_values = len(values)
len 232中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ query.py”。self._fetch_all()
_fetch_all 1105中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ query.py”。self._result_cache = list(self._iterable_class(self))
文件iter 53中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ query.py”。結果= editor.execute_sql(chunked_fetch = self.chunked_fetch)
在execute_sql 863中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ sql \\ compiler.py”。sql,params = self.as_sql()
as_sql 420中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ sql \\ compiler.py”。其中,如果self.where不在,則w_params = self.compile(self.where)別的(“”,[])
編譯373中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ sql \\ compiler.py”。sql,params = node.as_sql(self,self.connection)
as_sql 79中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ sql \\ where.py”。sql,params = editor.compile(child)
編譯373中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ sql \\ compiler.py”。sql,params = node.as_sql(self,self.connection)
as_sql 170中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ lookups.py”。rhs_sql,rhs_params = self.process_rhs(編譯器,連接)
在process_rhs 433中的文件“ C:\\ Program Files \\ Python35 \\ lib \\ site-packages \\ django \\ db \\ models \\ lookups.py”。params [0] =“ %%% s %%”%connection.ops.prep_for_like_query(參數[0])
異常類型:/profile/-.1/public_board處的TypeError異常值:'tuple'對象不支持項目分配
使用__in
代替__contains
。
im_following = self.request.user.profile.following.all().values_list('username', flat=True)
query_set = Post.objects.filter(User__name__in=im_following)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.