question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Filter Action Error: Field 'actor' does not generate an automatic reverse relation and therefore cannot be used for reverse querying.

See original GitHub issue

Hey every one (@justquick),

I have a django app and now I want to introduce django-activity-stream to notify users from events.

My issue is that I can not filter actions by actor or target:

python3.5 shell

>>> from app import models
>>> a = models.MyAppUser.objects.all()[1]
>>> a
<MyAppUser: Mark>
>>> t = models.MyAppUser.objects.all()[2]
>>> t
<MyAppUser: Steve>
>>> from actstream.models import Action
>>> Action(actor=a, verb='POST', target=t)
<Action: Mark POST Steve 0 minutes ago>
>>> Action.objects.filter(actor=a)

Error:

Traceback (most recent call last):
  File "/.../lib/python3.5/site-packages/django/core/management/commands/shell.py", line 69, in handle
    self.run_shell(shell=options['interface'])
  File "/.../lib/python3.5/site-packages/django/core/management/commands/shell.py", line 61, in run_shell
    raise ImportError
ImportError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/.../lib/python3.5/site-packages/django/db/models/manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/.../lib/python3.5/site-packages/django/db/models/query.py", line 790, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "/.../lib/python3.5/site-packages/django/db/models/query.py", line 808, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1243, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1269, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1149, in build_filter
    lookups, parts, reffed_expression = self.solve_lookup_type(arg)
  File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1035, in solve_lookup_type
    _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
  File "/.../lib/python3.5/site-packages/django/db/models/sql/query.py", line 1316, in names_to_path
    "adding a GenericRelation." % name
django.core.exceptions.FieldError: Field 'actor' does not generate an automatic 
reverse relation and therefore cannot be used for reverse querying. 
If it is a GenericForeignKey, consider adding a GenericRelation.

The output of my pip freeze is:

app==0.0.1
coverage==4.2
dj-database-url==0.4.1
**Django==1.9.5**
**django-activity-stream==0.6.3**
django-anymail==0.5
django-bootstrap-breadcrumbs==0.8
django-bootstrap-datepicker==1.1.1
django-bootstrap3==7.1.0
django-bower==5.1.0
django-configurations==2.0
django-debug-toolbar==1.5
django-formtools==1.0
django-nose==1.4.4
django-postman==3.3.2
factory-boy==2.7.0
fake-factory==0.7.2
flake8==3.0.4
mccabe==0.5.2
nose==1.3.7
Pillow==3.3.1
psycopg2==2.6.2
pycodestyle==2.0.0
pyflakes==1.2.3
python-dateutil==2.6.0
PyYAML==3.12
requests==2.11.1
rollbar==0.13.6
six==1.10.0
sqlparse==0.2.1
whitenoise==3.2.1

Similar like issue 281

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:12 (1 by maintainers)

github_iconTop GitHub Comments

2reactions
akshay-sonicommented, Aug 24, 2017

This could work - Action.objects.filter(actor_object_id__in=user_queryset.values_list(‘id’, flat=True))

0reactions
abubakarA-Dotcommented, Aug 17, 2022

when I try to implement this logic to display the activity stream on the home/user dashboard page:

    ```
    current_user = User.objects.get(id =request.user.id)
    network = AddToNetwork.objects.filter(network_status = 'ADD')
    actions = Action.objects.filter(verb='sent you a network request', actor=current_user, target=network)
    print("\n Actor message :", actions)
    ```

it throws the following error:

Field ‘actor’ does not generate an automatic reverse relation and therefore cannot be used for reverse querying. If it is a GenericForeignKey, consider adding a GenericRelation.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to traverse a GenericForeignKey in Django?
filter (bar__name='bar x') FieldError: Field 'bar' does not generate an automatic reverse relation and therefore cannot be used for reverse ...
Read more >
Filtering on action_object: Field 'action_object' does not generate an ...
Filtering on action_object: Field 'action_object' does not generate an automatic reverse relation and therefore cannot be used for reverse querying.
Read more >
Action Filter does not filter Target Worksheet Including When ...
Issue. When a Filter Action has been created with the default "All Fields" selected for Target Filters, and the Filter Action is triggered,...
Read more >
Chapter 5: Technology and Privacy Policy
This paper first describes how accountability and anonymity can be balanced to allow user control as much as possible, community norms when the...
Read more >
Micro Focus ArcSight Command Center User's Guide
Micro Focus shall not be liable for technical or editorial errors or ... You can also use rules to automatically open or update...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found