我的 models.py :
中有以下代码ext <- raster[[1]]@extent # 1st day extent area
date = as.Date(as.numeric(raster[[1]]@z), origin = "1960-01-01", tz = "GMT", format = "%Y-%m-%d") # 1st day Date
在 serializers.py
中> raster[[1]]
class : RasterLayer
band : 1 (of 31 bands)
dimensions : 110, 74, 8140 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : -42, 32, -55, 55 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : /data/input/raster.nc
names : var1
z-value : 20667.5
zvar : var1
> raster[1]
[[1]]
File /data/input/raster.nc (NC_FORMAT_CLASSIC):
2 variables (excluding dimension variables):
int var1[longitude,latitude,time]
units: nodimension
int var2[longitude,latitude,time]
units: nodimension
3 dimensions:
longitude Size:74
units: degrees east
long_name: Longitude
latitude Size:110
units: degrees north
long_name: Latitude
time Size:31
units: Julian days since 1960-1-01
6 global attributes:
Title: Rain Rate every 1 degree
Date Beg: 2016-08-01 00:00:00
Date End: 2016-08-31 23:59:59
Author: LastName, FirstName
Sensor: GEO
Conventions: CF-1.0
在 views.py :
中class ApiLog(models.Model):
...
incoming_data = models.TextField('incoming data', null=True, blank=True)
在POST请求中,我发送:
class ApiLogSerializer(serializers.ModelSerializer):
class Meta:
model = ApiLog
fields = ('incoming_data',)
在视图中尝试 serializer.is_valid()时出错:
class ApiLogViewSet(APIView):
def post(self, request, format=None):
serializer = ApiLogSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
也许是因为我尝试将字典保存到TextField?
是否可以将此词典保存到TextField?建议表示赞赏。
答案 0 :(得分:0)
试试引号?:
data = {...,
'incoming_data':'{"key1":"value1","key2":"value2"}'
}
答案 1 :(得分:0)
在序列化程序中尝试此操作:
class ApiLogSerializer(serializers.ModelSerializer):
incoming_data = serializers.JSONField() # change is here
class Meta:
model = ApiLog
fields = ('incoming_data',)
这会将您的JSON
dict转换为字符串并将其作为Text
存储在数据库中。
有关详细信息,请参阅official DRF documentation