我們用serializer返回json資料的時候,我們會發現有的字段不是我們想要的效果,
比如乙個datetime型別的字段,會預設返回為:
"update_time": "2017-07-08t00:41:07.201525z"。
而我們想要的效果是:
"update_time": "2017-07-08 01:15"我們先來看看models都有哪些類:
class
user
(models.model):
username = models.charfield(max_length=20, null=false, unique=true)
password = models.charfield(max_length=20, null=false)
name = models.charfield(max_length=10, null=false, unique=true) # 名稱
class
blog
(models.model):
title = models.charfield(max_length=50, null=false)
body = models.textfield()
owner = models.foreignkey(user) # 部落格的建立者
create_time = models.datetimefield("建立日期", auto_now_add=true)
update_time = models.datetimefield("更新日期", auto_now=true)
is_deleted = models.booleanfield(default=false)
def__str__
(self):
return self.title
這就是乙個簡單的部落格的資料庫模型了~~
那麼來看看serializer:
class
blogserializer
(serializers.modelserializer):
owner = serializers.readonlyfield(source='owner.name')
class
meta:
model = blog
fields = ('id', 'title', 'body', 'owner','create_time','update_time')
也非常的簡單,那麼我們應該怎麼改變create_time
和update_time
的格式呢?
自定義乙個字段序列化類:
class
formattimefield
(serializers.baseserializer):
defto_representation
(self, value):
return value.now().strftime('%y-%m-%d %h:%m')
這裡我們是唯讀的,所以,只需要重寫to_representation這個方法,其中的value是傳遞進來的字段,在這個例子中就是datetime。
然後我們呼叫datetime.now().strftime('%y-%m-%d %h:%m')
就可以得到指定格式的時間了!!!
使用自定義的序列化類:
class
blogserializer
(serializers.modelserializer):
owner = serializers.readonlyfield(source='owner.name')
create_time = formattimefield(read_only=true)
update_time = formattimefield(read_only=true)
class
meta:
model = blog
fields = ('id', 'title', 'body', 'owner','create_time','update_time')
瀏覽器得到的json資料就是如下效果啦:
所以,改變某個字段還是很簡單的,我們只需要繼承serializers.baseserializer
類,然後通過傳入的value然後自己想要的值就可以啦!!!
oracle改字型大小 sqlplus改字型
sqlplus font,其值為 terminal sqlplus font size,其值為14,或其他大小的值,如16 18等。問題3 在sql plus中改變字型和字符集 問題描述 有時,sql plus中顯示的資料字型太小,怎樣改變sql plus中顯示的字型大小?問題分析 oracle中所...
電腦改ip怎麼改
電腦改ip怎麼改?首先右鍵開啟電腦螢幕右下方的網路連線的圖示,選擇開啟網路和共享中心。在網路和共享中心當中點選網路連線連線狀態中的本地連線,可以進入本地連線狀態。在本地連線狀態中點選屬性,進入本地連線的管理狀態。在本地連線屬性當中可以看到兩個協議版本,雙擊它們可以看到更改ip位址和dns的介面。通常...
改水道風波
2006 9 6 這幾天倒霉透了!本來專案時間緊張,為了趕進度,自己封網乙個月。可是偏偏這時候改水道,這倒影響不大,可是接下來水道工人沒有把室內閥門裝上 下面就是麻煩 底下的閥門又沒開,這後來才知道。裝好我就上班去了,已經晚了乙個多小時。結果程式發生意外的問題,丟失了一部分程式,後來花近一天時間恢復...