【发布时间】:2016-12-29 16:30:59
【问题描述】:
考虑一个简单的任务来计算“y = ax + b”,其中“a”和“b”由模型给出,“x”由用户通过 API 请求给出,例如 http://someurl .com/api/15,其中 x=15。
通常,API 会以 JSON 格式返回“a”和“b”。但是,相反,我想在服务器上求解这个方程,只返回“y”。但是,我无法弄清楚如何从 URL 中获取“x”以及将最后一个函数放置在何处以将“y”返回给 JSON。有什么想法吗?
models.py:
from django.db import models
class SimpleEquation(models.Model):
a = models.IntegerField()
b = models.IntegerField()
serializers.py:
from rest_framework import serializers
from .models import SimpleEquation
class SimpleEquationSerializer(serializers.ModelSerializer):
class Meta:
model = SimpleEquation
fields = ('a','b') # Should return 'y' instead
views.py:
from rest_framework import generics
from .serializers import SimpleEquationSerializer
class Results(generics.ListAPIView):
queryset = SimpleEquation.objects.all()[0]
serializer_class = SimpleEquationSerializer
到目前为止我的愚蠢功能:
def the_function(request):
x = SOME_REQUEST_GET_METHOD
pars = SimpleEquation.objects.all()[0]
a = pars.a
b = pars.b
y = a*x + b
return y
【问题讨论】:
-
您尝试使用通用 ListAPIView 是否有原因?它不完全适合您的用例。
-
你是对的。 RetrieveAPIView 可能会更好。
-
你最后用了什么? @ErickDamasceno
标签: python json django django-rest-framework