在Django Rest Framework中动态修改序列化器字段(Dynamically modifying serializer fields in Django Rest Framework)
我正在尝试使用django rest框架文档中描述的高级序列化程序用法。 http://django-rest-framework.org/api-guide/serializers.html#advanced-serializer-usage动态修改序列化器字段
这是我的序列化程序类:
class MovieSerializer(serializers.ModelSerializer): moviework_work = MovieWorkSerializer(many=True) def __init__(self, *args, **kwargs): # Don't pass the 'fields' arg up to the superclass dropfields = kwargs.pop('dropfields', None) # Instantiate the superclass normally super(MovieSerializer, self).__init__(*args, **kwargs) if dropfields: # Drop fields specified in the `fields` argument. banished = set(dropfields) for field_name in banished: self.fields.pop(field_name) class Meta: model = Movie fields = ('field1','field2','moviework_work')
这是我的观点
class MovieFromInterpreterViewSet(viewsets.ModelViewSet): queryset = Movie.objects.all() serializer_class = MovieSerializer(dropfields=('moviework_work',))
我收到此错误:
TypeError: 'MovieSerializer' object is not callable
I'm trying to use the Advanced serializer usage described in the django rest framework documentation. http://django-rest-framework.org/api-guide/serializers.html#advanced-serializer-usage to dynamically modifying serializer field
Here is my serializer class:
class MovieSerializer(serializers.ModelSerializer): moviework_work = MovieWorkSerializer(many=True) def __init__(self, *args, **kwargs): # Don't pass the 'fields' arg up to the superclass dropfields = kwargs.pop('dropfields', None) # Instantiate the superclass normally super(MovieSerializer, self).__init__(*args, **kwargs) if dropfields: # Drop fields specified in the `fields` argument. banished = set(dropfields) for field_name in banished: self.fields.pop(field_name) class Meta: model = Movie fields = ('field1','field2','moviework_work')
Here is my viewset
class MovieFromInterpreterViewSet(viewsets.ModelViewSet): queryset = Movie.objects.all() serializer_class = MovieSerializer(dropfields=('moviework_work',))
I get this error:
TypeError: 'MovieSerializer' object is not callable
原文:https://stackoverflow.com/questions/18696403
最满意答案
这是一个UNIX纪元日期,以毫秒为单位。 将其除以1000后,可以使用
timeIntervalSince1970
进行转换。let localDate = Date(timeIntervalSince1970: notificationDate / 1000)
This is a UNIX epoch date in milliseconds. You can convert it with
timeIntervalSince1970
after dividing it by 1000.let localDate = Date(timeIntervalSince1970: notificationDate / 1000)
相关问答
更多-
php:将毫秒转换为日期(php: convert milliseconds to date)[2023-02-12]
你已经做对了,1227643821根本就不是02-12-2008,确实是25-11-2008。 You are already doing it right, 1227643821 is simply not 02-12-2008, it is indeed 25-11-2008. -
在我看来,最简单的方法是 import datetime epoch = datetime.datetime.utcfromtimestamp(0) def unix_time_millis(dt): return (dt - epoch).total_seconds() * 1000.0 It appears to me that the simplest way to do this is import datetime epoch = datetime.datetime.utcfrom ...
-
Date Object不接受String epoch。 所以你需要将它转换为Integer。 看一下这个 var epoch = "1325419200000" var date = new Date(epoch); // return Invalid Date date = new Date(parseInt(epoch)); //return Sun Jan 01 2012 21:00:00 GMT+0900 DateObject won't accept String epoch. so you ...
-
码: NSUInteger *foo = 123456789; NSString *bar = [[NSDate dateWithTimeIntervalSince1970:foo] description]; 请请请请请请用户友好,并根据用户的地区显示日期: 可可 - 从NSDate,NSCalendarDate本地化的字符串 Code: NSUInteger *foo = 123456789; NSString *bar = [[NSDate dateWithTimeIntervalSince1970 ...
-
蜂巢中是否有任何将纪元时间转换为标准日期的功能?(Is there any function in hive that converts epoch time to standard date?)[2023-06-03]
来自: https : //cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions from_unixtime(bigint unixtime[, string format]) From: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunct ... -
试试Time.at(1475001600079 / 1000.0) 。 红宝石的纪元时间以秒为单位,而不是毫秒。 至于NoMethodError ,在调用Time::strptime之前require 'time' 。 最后你需要的格式: Time.at(1475001600079 / 1000.0).strftime('%Y/%m/%d %H:%M:%S.%3N') Try Time.at(1475001600079 / 1000.0). The epoch time in ruby is in sec ...
-
如何将此UNIX纪元日期(以毫秒为单位)转换为本地日期/时间?(How to convert this UNIX epoch date in milliseconds to local date/time?)[2023-02-22]
这是一个UNIX纪元日期,以毫秒为单位。 将其除以1000后,可以使用timeIntervalSince1970进行转换。 let localDate = Date(timeIntervalSince1970: notificationDate / 1000) This is a UNIX epoch date in milliseconds. You can convert it with timeIntervalSince1970 after dividing it by 1000. let loca ... -
请试试这个: SELECT TO_TIMESTAMP('1970-01-01 00:00:00.0' ,'YYYY-MM-DD HH24:MI:SS.FF' ) + NUMTODSINTERVAL(1493963084212/1000, 'SECOND') FROM dual; 或者如果你想返回一个字符串: SELECT TO_CHAR( TO_TIMESTAMP('1970-01-01 00:00:00.0' ...
-
例如,使用NSDateComponentsFormatter let formatter = NSDateComponentsFormatter() formatter.allowedUnits = [.Hour, .Minute] formatter.unitsStyle = .Short if let difference = formatter.stringFromDate(date, toDate: nowDate) { print(difference) } else { prin ...
-
在Javascript中将日期转换为具有毫秒精度的unix(Converting date to unix with milliseconds precision in Javascript)[2022-04-09]
试试这个,不需要做/ 1000 var dateString = '2009-07-15 11:00:00.675'; dateString = dateString.split(' ').join('T'); var date = new Date(dateString); date = date.getTime(); try this, no need to do /1000 var dateString = '2009-07-15 11:00:00.675'; dateString = dateSt ...