【发布时间】:2021-06-02 17:53:25
【问题描述】:
我正在创建一个简单的 API。
models.py
class TestModel(models.Model):
tenor = models.IntegerField(db_column="tenor_field")
currency = models.CharField(max_length=6, db_column="currency_field")
value = models.FloatField(db_column="value_field")
serializer.py
class TestSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = TestModel
fields = [ 'tenor', 'currency', 'value']
views.py
class TestView(viewsets.ReadOnlyModelViewSet):
queryset = TestModel.objects.all()
serializer_class = TestSerializer
filterset_fields = ['tenor','currency']
当我打电话时
https://10.1.33.70/api/v1/base-rates/floating/?currency=**EUR**&tenor=**10**
我明白了
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"tenor": 10,
"currency": "EUR",
"value": 0.6
}
]
没关系。
当我打电话时 https://10.1.33.70/api/v1/base-rates/floating/?currency=**EUR**&tenor=**xxx**
我明白了
HTTP 400 Bad Request
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"tenor": [
"Enter a number."
]
}
也可以,因为中音是整数。
但是当我打电话给https://10.1.33.70/api/v1/base-rates/floating/?currency=**USD**&tenor=**10**
我明白了
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[]
因为数据库中只有欧元头寸(不是美元)。
如果我给不在数据库中的“货币”参数一个值,是否有可能得到一个“HTTP 400 错误请求”,或者我可以定义什么值可以给参数,否则一个“ HTTP 400 错误请求”。
谢谢:)
【问题讨论】:
标签: django django-rest-framework django-views django-filter