I am stuck on this. I think the main reason is because I don't understand what a generic foreign key is. I will take some time to find out what a generic foreign key is and how I can resolve this.
Here is the output of the failing test:
(venv) raymond@Umuzi-Lenovo-IdeaPad:~/umuzi/tilde2_stuff/auth_pages_layout/backend$ python manage.py test --pattern="test_activity_log_creators.py"
warning: GIT_REAL_WEBHOOK_SECRET not set!
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.[Tilde-backend] [2024-04-30 08:35:14] INFO [logging_middleware:21] anonomous [POST] /git_real/github_webhook
[Tilde-backend] [2024-04-30 08:35:14] ERROR [django.request:224] Internal Server Error: /git_real/github_webhook
Traceback (most recent call last):
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/decorators.py", line 50, in handler
return func(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/views.py", line 32, in github_webhook
pr = PullRequest.create_or_update_from_github_api_data(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/models.py", line 138, in create_or_update_from_github_api_data
log_pr_opened(pull_request)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/activity_log_creators.py", line 46, in log_pr_opened
match = LogEntry.objects.filter(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 942, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 962, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 969, in _filter_or_exclude_inplace
self._query.add_q(Q(*args, **kwargs))
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1358, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1377, in _add_q
child_clause, needed_inner = self.build_filter(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1258, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1084, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1459, in names_to_path
raise FieldError(
django.core.exceptions.FieldError: Field 'object_1' does not generate an automatic reverse relation and therefore cannot be used for reverse querying. If it is a GenericForeignKey, consider adding a GenericRelation.
E..[Tilde-backend] [2024-04-30 08:35:14] INFO [logging_middleware:21] anonomous [POST] /git_real/github_webhook
..
======================================================================
ERROR: test_adding_a_pr_review (git_real.tests.test_activity_log_creators.log_pr_reviewed_Tests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/mock/mock.py", line 1452, in patched
return func(*newargs, **newkeywargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/tests/test_activity_log_creators.py", line 70, in test_adding_a_pr_review
self.client.post(url, format="json", data=body, extra=headers)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/test.py", line 295, in post
response = super().post(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/test.py", line 209, in post
return self.generic('POST', path, data, content_type, **extra)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/test.py", line 233, in generic
return super().generic(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/test/client.py", line 470, in generic
return self.request(**r)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/test.py", line 285, in request
return super().request(**kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/test.py", line 237, in request
request = super().request(**kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/test/client.py", line 716, in request
self.check_exception(response)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/test/client.py", line 577, in check_exception
raise exc_value
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/rest_framework/decorators.py", line 50, in handler
return func(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/views.py", line 32, in github_webhook
pr = PullRequest.create_or_update_from_github_api_data(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/models.py", line 138, in create_or_update_from_github_api_data
log_pr_opened(pull_request)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/git_real/activity_log_creators.py", line 46, in log_pr_opened
match = LogEntry.objects.filter(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 942, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 962, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, *args, **kwargs)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/query.py", line 969, in _filter_or_exclude_inplace
self._query.add_q(Q(*args, **kwargs))
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1358, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1377, in _add_q
child_clause, needed_inner = self.build_filter(
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1258, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1084, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/home/raymond/umuzi/tilde2_stuff/auth_pages_layout/backend/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", line 1459, in names_to_path
raise FieldError(
django.core.exceptions.FieldError: Field 'object_1' does not generate an automatic reverse relation and therefore cannot be used for reverse querying. If it is a GenericForeignKey, consider adding a GenericRelation.
Ran 6 tests in 0.324s
FAILED (errors=1)
Destroying test database for alias 'default'...
## Screenshots/videos
<!-- If there is a visual component to what you did, please save us time by adding a screenshot. You can even link to a video demonstrating your feature, that would be cool too -->
## I solemnly swear that:
- [x] My code follows the style guidelines of this project
- [x] I have merged the develop branch into my branch and fixed any merge conflicts
- [x] I have performed a self-review of my own code
- [x] I have commented my code in hard-to-understand areas
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have tested new or existing tests and made sure that they pass
Related issues: [please specify]
Description:
I am stuck on this. I think the main reason is because I don't understand what a generic foreign key is. I will take some time to find out what a generic foreign key is and how I can resolve this.
Here is the output of the failing test:
Ran 6 tests in 0.324s
FAILED (errors=1) Destroying test database for alias 'default'...