DjangoとREST Frameworkを使用して、AngularJS Webサイトにデータを提供するAPIを構築しています。すべての検証がバックエンドで行われるようにする必要があります。Django raise空の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
必要とされています
は私がモデルという名前の候補を持っています。残りのフィールドはnullでもかまいません。
次に、サーバーを実行し、新しい候補を作成するためのPOST POST要求を行います。問題は、たとえフィールドを指定しなくても、空の文字列値(0)を与えるだけです。
Django Model Fieldsのblank
属性について聞いたことがありますが、フォームの検証にのみ適用され、HTTP要求には適用されません。
現在、私が問題を解決できると思われる唯一の方法は、BaseModel
クラスのsave()
関数をオーバーライドし、すべてのCharFieldが満たされているかどうか、またはそれ以外の場合はエラーを発生させることです。
思考?前もって感謝します!
drfを使用している場合は、シリアル化でバリデーターを使用することができます。http://www.django-rest-framework.org/api-guide/validators/#optional-fields – jape
私はあなたが100倍速くなると思いますPython EVEを使用している場合、REST APIを構築している場合は! –
@japeありがとう!バリデーターを調べます! –