簡體   English   中英

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

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

我有一個 Django rest 框架 API,在其中一個模型中,有一個 GeoLocation 的高程字段,它的值默認為 None。

原因是它可以由用戶傳入,或者如果留空,則通過調用谷歌的海拔 API 獲得。

所以,我試圖在序列化程序中使用 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')

錯誤:

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

海拔 = 模型.FloatField ...

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

字段名稱區分大小寫,elevation != Elevation。 嘗試僅使用小寫字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM