简体   繁体   English

Django rest 框架,在模型字段中不使用

[英]Django rest framework, use none in model's field

I have a Django rest framework API, In one of the models, there is a field for GeoLocation's elevation, which defaults its value to None.我有一个 Django rest 框架 API,在其中一个模型中,有一个 GeoLocation 的高程字段,它的值默认为 None。

The reason for that is that it can be passed in by the user or if left empty, obtained by a call to google's elevation API.原因是它可以由用户传入,或者如果留空,则通过调用谷歌的海拔 API 获得。

So, I'm trying to use the create function in the serializer to define its value but I'm getting a key error:所以,我试图在序列化程序中使用 create 函数来定义它的值,但我遇到了一个关键错误:

#app/models.py

  elevation = models.FloatField(name="Elevation",
                                  max_length=255,
                                  help_text="If known, Add location's sea level height. If not, Leave Empty.",
                                  null=False,
                                  default=None)
#app/serializers.py
from rest_framework.serializers import HyperlinkedModelSerializer

from Project_Level.utils import get_elevation
from .models import KnownLocation

class KnownLocationSerializer(HyperlinkedModelSerializer):
    def create(self, validated_data):
        if validated_data["Elevation"] is None:  # Using if not validated_data["Elevation"] results the same.
            validated_data["Elevation"] = get_elevation(validated_data["Latitude"], validated_data["Longitude"])

    class Meta:
        model = KnownLocation
        fields = ('id', 'Name', 'Area', 'Latitude', 'Longitude', 'Elevation')

Error:错误:

KeyError at /knownlocations/
'Elevation'
Exception Location: KnownLocation/serializers.py in create, line 9

elevation = models.FloatField...海拔 = 模型.FloatField ...

fields = ('id', 'Name', 'Area', 'Latitude', 'Longitude', 'Elevation') fields = ('id', 'Name', 'Area', 'Latitude', 'Longitude', 'Elevation')

field names are case-sensitive, elevation != Elevation.字段名称区分大小写,elevation != Elevation。 Try using lowercase only.尝试仅使用小写字母。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 模型的__str__字段上带有Django Rest Framework的UnicodeDecodeError - UnicodeDecodeError with Django Rest Framework on Model's __str__ field Django REST Framework的APIClient发送None为'None' - Django REST Framework's APIClient sends None as 'None' 尝试通过Django Rest框架发布mptt模型时,获取ValueError:无法将None用作查询值 - While trying to post mptt model via django rest framework getting ValueError: Cannot use None as a query value Django rest框架显示模型的特定字段 - Django rest framework displaying specific field of a model Django / Django Rest Framework-如何允许模型序列化程序将模型的外键字段设置为null? - Django/Django Rest Framework - How do I allow model serializer to set model's foreign key field to null? 在 Django REST 框架中使用 lookup_field 中的相关字段 - Use a related field in lookup_field in Django REST framework 在带有 Django Rest Framework 的 Django 模型中使用 uuid 作为外键 - Use uuid as foreign Key in a model in Django with Django Rest Framework Django Rest Framework模型对象返回带有选择项的字段的存储值 - Django Rest Framework model object returns stored value of a field with choices Django REST框架:“关键字参数无效”错误,但模型中存在字段 - Django REST framework: “invalid keyword argument” error but field exists in the model Django Rest Framework - 在序列化器中获取相关的模型字段 - Django Rest Framework - Get related model field in serializer
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM