AttributeError: object has no attribute '_request'
lexicalunit opened this issue · 2 comments
lexicalunit commented
Using the example for testing results in an exception at runtime.
import pytest
from django.contrib.admin import AdminSite
from yourapp.module.admin import MyAdmin
@pytest.fixture
def admin_site():
return AdminSite()
@pytest.mark.django_db
def test_action_XXX(admin_site):
"""Test action XXX"""
fake_request = {} # you might need to use a RequestFactory here
obj = ... # create an instance
admin = MyAdmin(obj, admin_site)
admin.render_inline_actions(article)
response = admin.action_XXX(fake_request, obj)
# assert the state of the application
This will fail on the line admin.render_inline_actions(article)
because this code is invalid:
At this point in the code the HTTP Request has not been given to the Admin object, so this attribute does not exist.
adinhodovic commented
I hit the same issue when using "fieldsets" instead of "fields" in the inline, buttons don't render since _request
is None
tvanesse commented
Depending on what you are trying to achieve, you might just assign a dummy request (admin._request = {}
) before calling render_inline_actions
. It works for me.