我正在使用Django和REST框架來構建將數據提供給AngularJS網站的API。我需要確保所有驗證都在後端完成。Django在空白CharFields上引發異常
我有一個型號命名爲候選人:
class Candidate(CreatedModel):
first_name = CharField(max_length=30)
last_name = CharField(max_length=100)
email = CharField(max_length=254, unique=True)
phone = CharField(max_length=20, null=True)
resume_path = CharField(max_length=200, null=True)
notes = TextField(null=True)
在這個模型中,只有first_name
,last_name
和email
是必需的。其餘的字段可以爲空。
然後我運行服務器併發出測試POST請求來創建一個新的候選人。問題是,即使我沒有指定任何字段,它只會給他們所有空字符串值(""
)。
我聽說Django Model Fields的blank
屬性,但它只適用於表單驗證而不適用於HTTP請求。
現在看來我可以解決這個問題的唯一方法是覆蓋BaseModel
類上的save()
函數,並檢查所有CharFields是否已填充或引發錯誤。
想法?提前致謝!
如果你使用的是drf,你可以在序列化中使用校驗器:http://www.django-rest-framework.org/api-guide/validators/#optional-fields – jape
我想你會快100倍如果你使用Python EVE,如果你正在構建一個REST API! –
@jape謝謝!我會看看驗證器! –