django RestフレームワークのDecimalFieldシリアライザーに選択肢を提供する方法は?

アポン

Django == 2.2.6

djangorestframework == 3.10.3

Models.py

VAT_CHOICES = [(Decimal('0.00'), '0%'), (Decimal('6.00'), '6%'), (Decimal('12.00'), '12%'), (Decimal('25.00'), '25%')]
class Service(models.Model):
    vat = models.DecimalField(verbose_name=_('vat'), decimal_places=2, max_digits=10, choices=VAT_CHOICES)

serializers.py

class ServiceSerializer(serializers.ModelSerializer):
    vat = serializers.DecimalField(decimal_places=2, max_digits=10, coerce_to_string=True)

これを行うと、応答の付加価値税の値は期待どおりにsrtingになりますが、選択の検証はその場合を意味しません。

これで、vat = "5.00"を使用してサービスを作成できますが、モデルに選択リストがあるため、これは不可能です。

10進フィールドの付加価値税の文字列表現を取得しながら、選択肢の検証を維持するにはどうすればよいですか?

Mohamed Abd El-hameed

これはあなたを助けると思います

from rest_framework import serializers
from django.core.validators import DecimalValidator

class ServiceSerializer(serializers.ModelSerializer):
    vat = serializers.ChoiceField(choices=[(Decimal('0.00'), '0%'), (Decimal('6.00'), '6%'), (Decimal('12.00'), '12%'),
                                           (Decimal('25.00'), '25%')], validators=[DecimalValidator(max_digits=10, decimal_places=2)])

    def to_representation(self, instance):
        data = super(ServiceSerializer, self).to_representation(instance)
        data.update(vat=str(instance.vat))
        return data

選択肢は他の値を受け入れないため、max_digitsとdecimal_placesを検証する必要はないと思います。

choices=[(Decimal('0.00'), '0%'), (Decimal('6.00'), '6%'), (Decimal('12.00'), '12%'),('25.00'), '25%')

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

django Restフレームワークシリアライザーのドロップダウンアイテムをフィルタリングする方法は?

シリアライザーでフィールドの属性を取得する(django restフレームワーク)

Django RESTフレームワーク:単純なForeignKey関係にシリアライザーを使用する

Django RESTフレームワークのモデル/シリアライザーを正しく定義するにはどうすればよいですか?

Django:Django Restフレームワークを既存のアプリケーションに統合する方法は?

django RESTフレームワークシリアライザーからフィールドを除外する

Django RESTフレームワークシリアライザーにfalseフィールドを追加するにはどうすればよいですか?

Django RESTフレームワークでシリアル化するモデルに選択表示名を渡す方法は?

Django RESTフレームワークシリアライザーのフィールドを動的に除外または含める

models.pyにシリアライザーをインポートする:DjangoのRESTフレームワーク

django RESTフレームワークで逆ネストされたシリアライザーを取得する方法はありますか?

django RESTフレームワークで逆ネストされたシリアライザーを取得する方法はありますか?

Django REST フレームワーク シリアライザの出力

django restフレームワークでオブジェクトを作成するときに、ネストされたシリアライザーのシリアライザーにユーザーデータを渡します

djangoフォームの選択肢のリストを決定する方法は?

Django RESTフレームワーク、シリアライザー:追加データ?

カウントフィールドをdjango RESTフレームワークシリアライザーに追加する

djangoのRESTフレームワークで外部キーを逆シリアル化する方法は?

Django RESTフレームワーク文字列のリストをシリアル化する方法は?

django-rest-シリアライザー内のフレームワークアクセスフィールド

django-rest-フレームワークシリアライザーto_representation

Django RESTフレームワーク:非モデルシリアライザー

Django RESTフレームワークのCreateAPIViewでcreate()の後に別のシリアライザーを返します

Django RESTフレームワークで自己との再帰的な関係をシリアル化する方法は?

シリアライザーの更新メソッドは作成するだけで更新しません(Django Restフレームワーク)

Django RESTフレームワーク-ネストされたシリアライザーのクエリ制限?

ネストされたシリアライザーを更新するDjangoレストフレームワーク

django RESTフレームワークのシリアライザーからカスタムエラー応答を送信しますか?

Django RESTフレームワークで書き込み可能なネストされたシリアライザーを複製せずに複数のモデルインスタンスを作成するにはどうすればよいですか?

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ