Позвольте мне объяснить с некоторым (очень упрощенным) кодом:
У меня есть представление Django, что-то вроде:
view.py
Код: Выделить всё
from myapp.models import Item
from myapp.utils import MyClass
# need to initialize with the set of items
item_set = {item.name for item in Item.objects.all()}
my_class_object = MyClass(item_set)
class MyView(APIView):
def post(selfself, request):
result = my_class_object.process(request.data)
return Response(result)
По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.
По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.
По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.
p>
Теперь тест:
my_test.py
Код: Выделить всё
from rest_framework.test import APILiveServerTestCase
from myapp.models import Item
class MyTest(APILiveServerTestCase):
def setUp(self):
self.URL = '/some_url_linking_to_myview/'
# load some data
Item.objects.create(name="first item")
Item.objects.create(name="second item")
def test_myview_return_correct_result(self):
post_data = {"foo"}
response = self.client.post(self.URL,
data=post_data,
format='json')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data, {"my_expected_result"})
Код: Выделить всё
item_set = {item.name for item in Item.objects.all()}
my_class_object = MyClass(item_set)
Мне интересно, есть ли способ получить данные в базу данных до того, как view.py будет выполнен, или, может быть, каким-то образом принудительно перезагрузить приложение после setUp(), или создать экземпляр моего класса где-нибудь еще, чтобы он вызывался после загрузки данных?
спасибо!
Подробнее здесь: https://stackoverflow.com/questions/449 ... g-the-apps
Мобильная версия