Поэтому я настроил 2 базы данных, такие как вы, немного изменил код, добавил 2 tst
объектов в базу данных и получил данные JSON этих 2 tst
объектов в моем вызове API.
Я немного изменил models.py
, добавив primary_key=True
в поле id
.
# models.py
class tst(models.Model):
id = models.CharField(primary_key=True, max_length=100)
ticker = models.FloatField()
def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, using='dbtwo', **kwargs)
Я изменил views.py
, поэтому он использует ModelViewSet
следующим образом:
# views.py
from rest_framework import viewsets
class tstList(viewsets.ModelViewSet):
queryset = tst.objects.using('dbtwo').all()
serializer_class = tstSerializer
Я ничего не изменил на сериализаторе, поэтому мой выглядит так:
# serializers.py
class tstSerializer(serializers.ModelSerializer):
class Meta:
model = tst
fields = ('id', 'ticker',)
Наконец, в urls.py
я использовал DefaultRouter()
и зарегистрировал представление tstList
в качестве конечной точки, например:
# urls.py
from rest_framework import routers
# imported tstList view here
router = routers.DefaultRouter()
router.register(r'test', views.tstList, base_name='test')
Затем я запустил следующие команды в моем терминале:
manage.py makemigrations
manage.py migrate --database dbtwo
manage.py runserver
Затем я создал два tst
объекта со случайными значениями с плавающей запятой для их ticker
полей.
Запрос GET и результаты
Когда я сейчас делаю GET-запрос к http://127.0.0.1:8000/test/
, я получаю следующие результаты:
[
{
"id": "1",
"ticker": 1.2
},
{
"id": "2",
"ticker": 1.7
}
]