Djangoのジェネリッククラスビューからオプションを削除する

sb9

今週Djangoの学習を始めたばかりで、クラ​​スベースのビューでレンダリングされている選択メニューからオプションを削除する方法を見つけようとしています。ドロップダウンは、ユーザーテーブルにリンクする外部キーフィールド用です。

ここでの機能は、ログインしている現在のユーザーがそのリストに表示されないようにすることです(基本的に、誰かが自分で選択できるようにしたくない)。どうすればこれを行うことができますか?

見る:

class TransferCreateView(CreateView):
    model = Transfer
    template_name = 'points/transfer_form.html'
    fields = ['receiver', 'message', 'amount']

モデル:

class Transfer(models.Model):
    receiver = models.ForeignKey(User, null=False, 
                 on_delete=models.CASCADE, related_name='receiver')
    sender = models.ForeignKey(User, null=False, on_delete=models.CASCADE, related_name='sender')
    amount = models.IntegerField(
        validators=[
            MinValueValidator(1),
            MaxValueValidator(1000)],
        null=False)
    message = models.CharField(max_length=100)
    date_sent = models.DateTimeField(default=timezone.now)

基本的に、送信者(form_valid()関数のコードで設定する予定)である人が、レンダリング時にテンプレートの「受信者」のオプションになることは望ましくありません。

phoibos

get_formメソッドをオーバーライドし、CreateViewそのフィールドのクエリセットを次のように変更します。

class TransferCreateView(CreateView):
    model = Transfer
    template_name = 'points/transfer_form.html'
    fields = ['receiver', 'message', 'amount']

    def get_form(self, form_class):
        form = super().get_form(form_class)
        form.fields['receiver'].queryset = User.objects.exclude(id=self.request.user.id)
        return form

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Laravelのビューからリレーションシップロジックを削除する

分類Dev

オブジェクトからオプションのジェネリック値を取得する

分類Dev

異なるパッケージからプライベートクラスのオブジェクトを作成するJavaリフレクション、

分類Dev

他のプロジェクトビジュアルスタジオのコンソールアプリケーションクラスからc ++クラスを使用する

分類Dev

ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

分類Dev

C ++のジェネリック関数からオプションを返す

分類Dev

オプションのジェネリック拡張からnilを返す

分類Dev

ビューのJavaスクリプトコードからコントローラーのアクションメソッドにオブジェクトのリストを渡す方法

分類Dev

ジェネリックから派生したクラスのコレクションでジェネリック基本クラスを使用する

分類Dev

C#リフレクション-基本クラス内からスーパークラスのジェネリック引数タイプを取得します

分類Dev

ジェネリッククラスのプライベートArrayListから要素を削除する方法

分類Dev

プログラムでソリューションビルドからプロジェクトを除外する

分類Dev

ジェネリッククラスのコレクションプロパティをループする

分類Dev

Visual StudioOnlineのソリューションから不足しているプロジェクトを削除する

分類Dev

エンタープライズレベルのアプリケーションでWebプロジェクトからビジネスロジックデータを非表示にする方法

分類Dev

Django:1つのテンプレートで3つ以上のクラスベースのジェネリックビューを使用する方法

分類Dev

Djangoのビューからオブジェクトを削除する

分類Dev

偶発的なS3オブジェクトの削除。Cloudfrontディストリビューションから削除されたオブジェクトを回復する

分類Dev

プロジェクト/ソリューション全体から未使用の名前空間を削除する

分類Dev

ビジネスをプレゼンテーションロジックから分離する最良の方法?

分類Dev

モジュラーアプリケーションでジェネリッククラス/インターフェースを処理する方法は?

分類Dev

不明なオブジェクトをインターフェイスのジェネリックインターフェイスにキャストします(最初は明示的なジェネリックタイプのジェネリックコレクションタイプのタイプから)

分類Dev

ColorOSのタスクマネージャーからアプリを削除するとバックグラウンドサービスが強制終了する

分類Dev

ジェネリックテーブルのクラッシュをラップするためのクラス

分類Dev

ジェネリッククラスベースのビューでdjangoの時間形式を変更する方法

分類Dev

Android:Firebaseからオブジェクトを読み取ると、アプリケーションがクラッシュします

分類Dev

Visual Studio のプロジェクト ソリューションから追加のビルド ファイルを削除する方法

分類Dev

Javaバージョンチェックスクリプトから空の行と「()」出力を削除する方法

分類Dev

Djangoクラスベースのジェネリックビュー(CreateView)を国際化しますか?

Related 関連記事

  1. 1

    Laravelのビューからリレーションシップロジックを削除する

  2. 2

    オブジェクトからオプションのジェネリック値を取得する

  3. 3

    異なるパッケージからプライベートクラスのオブジェクトを作成するJavaリフレクション、

  4. 4

    他のプロジェクトビジュアルスタジオのコンソールアプリケーションクラスからc ++クラスを使用する

  5. 5

    ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

  6. 6

    C ++のジェネリック関数からオプションを返す

  7. 7

    オプションのジェネリック拡張からnilを返す

  8. 8

    ビューのJavaスクリプトコードからコントローラーのアクションメソッドにオブジェクトのリストを渡す方法

  9. 9

    ジェネリックから派生したクラスのコレクションでジェネリック基本クラスを使用する

  10. 10

    C#リフレクション-基本クラス内からスーパークラスのジェネリック引数タイプを取得します

  11. 11

    ジェネリッククラスのプライベートArrayListから要素を削除する方法

  12. 12

    プログラムでソリューションビルドからプロジェクトを除外する

  13. 13

    ジェネリッククラスのコレクションプロパティをループする

  14. 14

    Visual StudioOnlineのソリューションから不足しているプロジェクトを削除する

  15. 15

    エンタープライズレベルのアプリケーションでWebプロジェクトからビジネスロジックデータを非表示にする方法

  16. 16

    Django:1つのテンプレートで3つ以上のクラスベースのジェネリックビューを使用する方法

  17. 17

    Djangoのビューからオブジェクトを削除する

  18. 18

    偶発的なS3オブジェクトの削除。Cloudfrontディストリビューションから削除されたオブジェクトを回復する

  19. 19

    プロジェクト/ソリューション全体から未使用の名前空間を削除する

  20. 20

    ビジネスをプレゼンテーションロジックから分離する最良の方法?

  21. 21

    モジュラーアプリケーションでジェネリッククラス/インターフェースを処理する方法は?

  22. 22

    不明なオブジェクトをインターフェイスのジェネリックインターフェイスにキャストします(最初は明示的なジェネリックタイプのジェネリックコレクションタイプのタイプから)

  23. 23

    ColorOSのタスクマネージャーからアプリを削除するとバックグラウンドサービスが強制終了する

  24. 24

    ジェネリックテーブルのクラッシュをラップするためのクラス

  25. 25

    ジェネリッククラスベースのビューでdjangoの時間形式を変更する方法

  26. 26

    Android:Firebaseからオブジェクトを読み取ると、アプリケーションがクラッシュします

  27. 27

    Visual Studio のプロジェクト ソリューションから追加のビルド ファイルを削除する方法

  28. 28

    Javaバージョンチェックスクリプトから空の行と「()」出力を削除する方法

  29. 29

    Djangoクラスベースのジェネリックビュー(CreateView)を国際化しますか?

ホットタグ

アーカイブ