簡體   English   中英

收到此錯誤-'tuple'對象不支持項目分配

[英]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_pa​​rent._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(s​​elf))

文件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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM