0
votes

Hello hope some one helps me on this challenge. Getting this error - 'tuple' object does not support item assignment

I'm trying to get the posts of the users that I follow, in the models I used GenericForeignKey

the error is pointing at the first statement . - ({% 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())

Traceback:

File "C:\Program Files\Python35\lib\site-packages\django\core\handlers\exception.py" in inner 41. response = get_response(request)

File "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response 249. response = self._get_response(request)

File "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

File "C:\Program Files\Python35\lib\site-packages\django\core\handlers\base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Program Files\Python35\lib\site-packages\django\views\generic\base.py" in view 68. return self.dispatch(request, *args, **kwargs)

File "C:\Program Files\Python35\lib\site-packages\django\views\generic\base.py" in dispatch 88. return handler(request, *args, **kwargs)

File "C:\Users\wahab\Desktop\site1\ostra\ostrakodecommerce\posts\views.py" in get 75. return render(request,"posts/user/user_board.html", Context)

File "C:\Program Files\Python35\lib\site-packages\django\shortcuts.py" in render 30. content = loader.render_to_string(template_name, context, request, using=using)

File "C:\Program Files\Python35\lib\site-packages\django\template\loader.py" in render_to_string 68. return template.render(context, request)

File "C:\Program Files\Python35\lib\site-packages\django\template\backends\django.py" in render 66. return self.template.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 207. return self._render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" in render 177. return compiled_parent._render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" in render 72. result = block.nodelist.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\loader_tags.py" in render 216. return template.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 209. return self._render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in _render 199. return self.nodelist.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render 990. bit = node.render_annotated(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\base.py" in render_annotated 957. return self.render(context)

File "C:\Program Files\Python35\lib\site-packages\django\template\defaulttags.py" in render 173. len_values = len(values)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" in len 232. self._fetch_all()

File "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" in _fetch_all 1105. self._result_cache = list(self._iterable_class(self))

File "C:\Program Files\Python35\lib\site-packages\django\db\models\query.py" in iter 53. results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql 863. sql, params = self.as_sql()

File "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" in as_sql 420. where, w_params = self.compile(self.where) if self.where is not None else ("", [])

File "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" in compile 373. sql, params = node.as_sql(self, self.connection)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\where.py" in as_sql 79. sql, params = compiler.compile(child)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\sql\compiler.py" in compile 373. sql, params = node.as_sql(self, self.connection)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\lookups.py" in as_sql 170. rhs_sql, rhs_params = self.process_rhs(compiler, connection)

File "C:\Program Files\Python35\lib\site-packages\django\db\models\lookups.py" in process_rhs 433. params[0] = "%%%s%%" % connection.ops.prep_for_like_query(params[0])

Exception Type: TypeError at /profile/-.1/public_board Exception Value: 'tuple' object does not support item assignment

1
Can you show how you are supplying the posts_list? - The_Cthulhu_Kid
Could you also post the full traceback? - Tom Dalton
Show the view rendering posts_list please. - Daniel Lee
post the full traceback - Arpit Solanki
What is "Context" here? It doesn't seem to be defined within your view. - Daniel Roseman

1 Answers

1
votes

Use __in instead of __contains.

im_following = self.request.user.profile.following.all().values_list('username', flat=True) 
query_set = Post.objects.filter(User__name__in=im_following)