Я новичок в Джанго. Итак, моя текущая структура:
--/project
----/settings.py
----/urls.py
----/wsgi.py
--/app1
----/migrations
----/admin.py
----/apps.py
----/models.py
--/app2
----/migrations
----/serializers.py
----/apps.py
----/urls.py
----/views.py
Я хочу знать, где и как (для доступа) я должен кодировать некоторые вещи:
- Я хочу подключиться к сторонней службе хранениянажимая на их apis и получая нужные мне данные.
- Я хочу сохранить эти данные в моей базе данных в какой-то модели, которую я создал в models.py, скажем, 'Setting'
- Я хочу сгенерировать дополнительные данные, используя данные настройки, и сохранить их в базе данных. для другой модели скажем 'Item'
- Наконец, Item - это то, что будет отправлено в ответе на остальные API моего приложения, которые я уже достиг.
Прямо сейчас яя бью сторонний apis внутри моего views.py вот так:
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = serializers.ItemSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
def get_queryset(self):
return self.queryset.order_by('order_id')
def perform_create(self, serializer):
"""Create a new Item"""
# generate some auth string and hit api
# http = urllib3.PoolManager()
# response_auth = http.request(
# 'GET',
# SOME_URL,
# headers={auth: auth_string},
# )
# print(response_auth.status)
# print(response_auth.data)
# auth_response = json.loads(response_auth.data.decode('utf8'))
# print(auth_response)
# serializer.save(user=self.request.user, name=auth_response['name'])
Также некоторые другие поля Item я беру с сайта администратора. И некоторые приходят из API.