1.新しいプロジェクトジャンゴを作成し、車は、クラスを定義するname属性の文字列を持って、プロパティの色(0:シルバー、1:黒、2:レッド、3:グレー)を選択し、INT。、フル小数精度価格の種類、画像ファイルの画像をタイプ、ブランド文字列型
ModelSerializerクラスに基づいて2、完全な車単一のリソースの調査、調査グループ、テンジン・インタフェースの
シーケンス:ショー車名、車の色、車の価格は、車のポスター、車のブランドは
、デシリアライズ:あなたは、車の名前を提供する必要があります車の価格は、車のブランド(車は二次確認re_brandのニーズにマッチする)、シルバーカーのデフォルトの色(提供することが可能)、車のポスターを設ける必要がない(デフォルトでは空白)
#model.py から django.dbのインポートモデル クラスカー (models.Model):""」 名前の文字列プロパティ、 、色が選択される整数(シルバー、1:黒、2:赤、3灰色0)属性 価格全精度の小数点以下のタイプ、 イメージ画像ファイルの種類、 ブランド文字列型 "" " COLOR_CHOICES = [(0、' 銀')、(1、' ブラック')、(2、' 赤')、(3、' グレー' )] 名前 = models.CharField(max_lengthを= 64 ) 色 = models.IntegerField(選択肢= COLOR_CHOICES、デフォルト= 0) 価格 = models.DecimalField(max_digits = 10、decimal_places = 2 ) 画像 = models.ImageField(upload_to = ' IMG '、デフォルト= ' IMG / default.png ' ) ブランド = models.CharField(max_lengthを= 64 ) @property デフcar_color(自己): 戻り self.get_color_display()
serializers.py rest_frameworkの輸入シリアライザ から。インポートモデル クラスCarModelSerializer(serializers.ModelSerializer): re_brand = serializers.CharField(WRITE_ONLY = 真) クラスメタ: モデル = models.Car フィールド = [ ' 名前'、' 価格'、' 色'、' car_color '、' 画像'、' ブランド'、' re_brand ' ] extra_kwargs = { ' イメージ' { ' READ_ONLY ' :真 }、 ' 色' :{ ' WRITE_ONLY ' :真 } } デフ検証(自己、attrsに): ブランド = attrs.get(' ブランド' ) re_brand = attrs.pop(' re_brand ' ) であればブランド=!re_brand: 昇給 serializers.ValidationError({ ' re_brand ':' 品牌不一致' }) 戻り attrsに
総ルート
django.conf.urls インポート、URLが含まれる から django.contribの輸入管理者 から django.views.static 輸入サーブ から django.conf インポート設定 urlpatterns = [ URL(R ' ^管理/ ' 、admin.site.urls)、 URL(R ' ^ API / '、(含める' api.urlsを' ))、 URL(R ' ^メディア/(P <パス> *)?'、サーブ、{ ' DOCUMENT_ROOT ' :settings.MEDIA_ROOT})、 ]
サブルーティング
django.conf.urls インポートURL から。インポートビュー urlpatterns = [ #カスタムシリアライズ URL(R&LT ' ^車/ $ ' 、views.CarAPIView.as_view())、 URL(R ' ^車/(?P <PK> \ D +)/ $ ' 、views.CarAPIView.as_view())、 URL(R ' ^公表する/ $ ' 、views.PublishAPIView.as_view())、 ]
。