提供するシリアライザーフィールドクラス

Zen Of Pythonの 暗示するより明示するほうがいい という観点からdefinable-serializerでは TemplateHTMLRenderer のためにいくつかのフィールドを提供しています。

警告

これらのフィールドは将来的に別パッケージとして提供される可能性があります。


CheckRequiredField

class CheckRequiredField(*args, **kwargs)

必ずOnをしなければならないチェックボックスを提供します。ユーザーの意思確認などを行いたい場合に利用します。

このクラスは restframeworkの BooleanField を継承してつくられています。 オプションについては BooleanField を参照してください。

シリアライザー定義のfieldには definable_serializer.extra_fields.CheckRequiredField を指定します。

main:
  name: Agreement
  fields:
  - name: agreement
    field: definable_serializer.extra_fields.CheckRequiredField

MultipleCheckboxField

class MultipleCheckboxField(choices, *args, required=False, inline=False, **kwargs)

複数のチェックボックスによる選択肢を表示するフィールドを提供します。

fieldには definable_serializer.extra_fields.MultipleCheckboxField を指定します。

  • requiredtrue にすると必須選択になります。
  • inlinetrue にするとチェックボックスが横並びに表示されます。

このクラスはrestframeworkの MultipleChoiceField を継承してつくられています。その他のオプションについては MultipleChoiceField を参照してください。

main:
  name: YourFavoriteAnimal
  fields:
  - name: animal_choice_field
    field: definable_serializer.extra_fields.MultipleCheckboxField
    field_args:
    - - - dog
        - 🐶Dog
      - - cat
        - 😺Cat
      - - rabbit
        - 🐰Rabbit
    field_kwargs:
      inline: true
      required: true
      label: Lovely Animals
      help_text: Please choice your favorite animal
_images/multiple_animal_choice.png

インライン化されたMultipleCheckboxField


ChoiceRequiredField

class ChoiceRequiredField(choices, *args, **kwargs)

0.1.12 で登場しました。

選択必須のリストを提供します。

基本的な動作は ChoiceField と変わりませんがユーザーに選択を促すブランクチョイスを入れるため、 choices の1つ目の値が必ずnull値である必要があります。

このクラスは restframeworkの ChoiceField を継承してつくられています。その他のオプションについては ChoiceField を参照してください。

main:
  name: YourFavoriteAnimal
  fields:
  - name: animal_choice_field
    field: definable_serializer.extra_fields.ChoiceWithBlankField
    field_args:
    - - - null
        - "-------- Please Choice one 😉 --------"
      - - dog
        - 🐶Dog
      - - cat
        - 😺Cat
      - - rabbit
        - 🐰Rabbit
    field_kwargs:
      label: Lovely Animals
      blank_label: '-------- Please Choice 😉 --------'
      help_text: Please choice your favorite animal

ChoiceWithBlankField

警告

ChoiceWithBlankFieldクラスは廃止予定です。変わりに ChoiceRequiredField を利用してください。

class MultipleCheckboxField(choices, *args, blank_label=None, **kwargs)

渡されたchoicesの選択にブランクチョイスを自動的に追加します。ブランクチョイスが選択された状態でバリデーションが 行われるとエラーになります。

fieldには definable_serializer.extra_fields.ChoiceWithBlankField を指定します。

  • blank_label に文字列を渡すとダッシュの連続の代わりにその文字列がブランクチョイスの部分に表示されます。

このクラスは restframeworkの ChoiceField を継承してつくられています。その他のオプションについては ChoiceField を参照してください。

main:
  name: YourFavoriteAnimal
  fields:
  - name: animal_choice_field
    field: definable_serializer.extra_fields.ChoiceWithBlankField
    field_args:
    - - - dog
        - 🐶Dog
      - - cat
        - 😺Cat
      - - rabbit
        - 🐰Rabbit
    field_kwargs:
      label: Lovely Animals
      blank_label: '-------- Please Choice 😉 --------'
      help_text: Please choice your favorite animal
_images/choice_with_blank_field.png

blank_labelに文字を渡した例。blank_labelが空の場合は "---------" となります。


RadioField

class RadioField(choices, *args, inline=False, **kwargs)

ラジオボタンによる選択肢を表示するフィールドを提供します。

fieldには definable_serializer.extra_fields.RadioField を指定します。

  • inlinetrue にするとチェックボックスが横並びに表示されます。

このクラスは restframeworkの ChoiceField を継承してつくられています。その他のオプションについては ChoiceField を参照してください。

main:
  name: YourFavoriteAnimal
  fields:
  - name: animal_choice_field
    field: definable_serializer.extra_fields.RadioField
    field_args:
    - - - dog
        - 🐶Dog
      - - cat
        - 😺Cat
      - - rabbit
        - 🐰Rabbit
    field_kwargs:
      inline: true
      required: true
_images/radio_field.png

インライン化されたRadioField


TextField

警告

TextFieldクラスは廃止予定です。変わりに CharField を利用してstyle引数を渡してください。 詳しくは field-styles を参照してください。

また、placeholder引数は フィールドの国際化 翻訳の対象になりません。

テキストエリアを提供します。

fieldには definable_serializer.extra_fields.TextField を指定します。

  • rows に数値を渡すことででテキストエリアの行数を指定することができます。
  • placeholder に文字列を渡すとプレースホルダー文字列を表示することができます。

このクラスは restframeworkの CharField を継承してつくられています。その他のオプションについては CharField を参照してください。

_images/text_field.png

placeholderとrowsを設定した例