Django管理フォームはチェックボックスに基づいてフィールドを動的に変更します

フィリップフィッシャー

Djangoでカレンダーを実装していて、機能を拡張して定期的なイベントのサポートを追加したいと考えています。私の問題は、1日または複数日のイベントと定期的なイベントを切り替えるBooleanFieldが欲しいということです。したがって、フィールドには次のようなラベルが付けられます。これは定期的なイベントですか?ユーザーがチェックボックスをオンにすると、開始フィールドと終了フィールドが変更され、別のフィールドが表示されます。

これが私のmodel.pyの簡単なバージョンです

class Event(models.Model):

    title = models.CharField(max_length=40)

    description = models.TextField(blank=True)

    is_recurring = models.BooleanField(blank=True, default=False, verbose_name='Event is recurring?')

    start = models.DateTimeField()

    end = models.DateTimeField()    

    def __str__(self):
        return self.title

また、ユーザーがis_recurringフィールドをチェックした場合は、これら2つのフィールドを動的に削除し、フォームを変更します。これが私のadmin.pyです:

class EventAdmin(admin.ModelAdmin):
    form = EventForm
    fieldsets = [
        (None,  {'fields': [
                                'title',
                                'description'
                            ]
                }
        ),
        (None,  {'fields':  [
                                'is_recurring',
                                'start',
                                'end',
                            ]
                }
        ),
    ]   # END fieldset

    def get_fieldsets(self, *args, **kwargs):
        return(
                (None, {
                        'fields' : ('my_extra_field',),
                    }),
            )

admin.site.register(Event , EventAdmin)

これが私のforms.pyです

class EventForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EventForm, self).__init__(*args, **kwargs)
        self.fields['my_extra_field'] = forms.CharField()

    class Meta:
        model = Event

だからここで私はmy_extra_fieldそれを試すためにフォームに追加しようとしていました、しかし私は得続けます

イベントに指定された不明なフィールド(my_extra_field)。クラスEventAdminのフィールド/フィールドセット/除外属性を確認してください。

自分のフィールドを取得する方法が見つかりません。を使用しているためfieldsetsか、使用しないことを提案したいという印象がありますが、残念ながら、質問に適したものにするためにモデルから削除した情報がたくさんあるため、使用する必要があります。fieldsets

質問をまとめるために、チェックボックスにフィールドベースを動的に追加する方法を知りたいのですが。質問の拡張として、フォームから2つのフィールドを削除するにはどうすればよいですか?

RenéFleschenberg

フィールドセットで使用できるように、追加のフィールドがフォームに存在する必要があります。

class EventForm(forms.ModelForm):
    my_extra_field = forms.CharField()   

    class Meta:
        model = Event
        exclude = tuple()  # Required in recent Django versions.
                           # Be careful not to include fields by accident.

余分なフィールドをどう処理するかわからないsave()ため、フォームを上書きModelFormする必要があります。

class EventForm(forms.ModelForm):
    my_extra_field = forms.CharField()

    def save(self, *args, **kwargs):
        if self.cleaned_data['is_recurring']:
            # do something with your extra fields,
            # remove values from other fields, etc.
        super(EventForm, self).save(*args, **kwargs)

ページをリロードせずにフォームを変更する場合は、Javascriptを使用する必要があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

チェックボックスの値に基づいて入力フォームフィールドを有効/無効にします

分類Dev

チェックボックスID値に基づいて入力フィールドに入力します

分類Dev

MS Access 2013:フォームのチェックボックスに基づいてレポートのラベルキャプションを変更する

分類Dev

最初にチェックしたチェックボックスの値に基づいて、戻るボタンのクリック時にAngular6リアクティブフォームをリロードします

分類Dev

JavaScript Radio Toggleは、チェックされたものに基づいて異なるフォームフィールドを表示します

分類Dev

データベースレコードに基づいてチェックボックスフォームを動的に生成する

分類Dev

SQL数値フィールドに基づいてチェックするGridviewItemTemplateチェックボックス

分類Dev

チェックボックスが選択されている場合は常に、アクセスフォームのテキストボックスにテーブルフィールドのPhoneContactsを自動入力します

分類Dev

Laravelでのチェックボックスの選択に基づいて、フィールドの値をデータベースに送信します

分類Dev

Excel-セルの内容に基づいてユーザーフォームチェックボックスの値を設定します

分類Dev

チェックボックスのステータスに基づいて、サブフォームの非表示フィールドを表示に設定します

分類Dev

チェックボックスに基づいてjQueryでフォームアクションを変更する方法

分類Dev

フォームフィールドの現在のセットに対する回答に基づいて次のフォームフィールドのセットが変更されるロジックを備えた、さまざまなフォームフィールドを持つ動的フォーム

分類Dev

ドロップダウンボックスからの変更時に選択されたものに基づいて、他の入力フィールドを作成するためのフォームを作成します

分類Dev

チェックボックスがオンになっているかどうかに応じて、フォームコントロールまたはフォームグループの有効性を変更する方法を角度で示します。リアクティブフォームを使用します。

分類Dev

Jquery:チェックボックスのチェック/オフに基づいてラベルのクラスを変更します

分類Dev

mysqlデータベースのテーブルのフィールドに基づいてチェックボックスにステータスを表示しているフォームを作成編集するにはどうすればよいですか?

分類Dev

PowerShellフォーム| 署名されたチェックボックスに基づいてラベルを移動する

分類Dev

1つのチェックボックスをターゲットにし、その値に基づいて入力フィールドを表示する方法

分類Dev

php-選択ボックスの選択に基づいて非表示のフォームフィールド値を取得します

分類Dev

チェックボックスに基づいて、ブートストラップボタンを無効からアクティブに変更します

分類Dev

Django管理フォームフィールド-オブジェクトに依存するクエリ結果を選択ボックスに表示します

分類Dev

チェックボックスがオンになっているかどうかに基づいて、入力テキストフィールドの値を変更するにはどうすればよいですか?

分類Dev

PHPは複数のフォームフィールドをチェックボックスフィールドに処理します

分類Dev

スプレッドシートのセル値に基づいて、htmlformのチェックボックスを自動的にチェックします

分類Dev

選択したチェックボックスに基づいてフォームの一部を表示/非表示にしますか?

分類Dev

MS Accessフィルターを使用し、ボタンに基づいて複数のチェックボックスをtrue / falseにします

分類Dev

チェックボックスに基づいて別のフォームフィールドを設定するにはどうすればよいですか?

分類Dev

Rails 4:RailsでJQueryを使用してチェックボックス値に基づいてテキストフィールドを無効にする方法

Related 関連記事

  1. 1

    チェックボックスの値に基づいて入力フォームフィールドを有効/無効にします

  2. 2

    チェックボックスID値に基づいて入力フィールドに入力します

  3. 3

    MS Access 2013:フォームのチェックボックスに基づいてレポートのラベルキャプションを変更する

  4. 4

    最初にチェックしたチェックボックスの値に基づいて、戻るボタンのクリック時にAngular6リアクティブフォームをリロードします

  5. 5

    JavaScript Radio Toggleは、チェックされたものに基づいて異なるフォームフィールドを表示します

  6. 6

    データベースレコードに基づいてチェックボックスフォームを動的に生成する

  7. 7

    SQL数値フィールドに基づいてチェックするGridviewItemTemplateチェックボックス

  8. 8

    チェックボックスが選択されている場合は常に、アクセスフォームのテキストボックスにテーブルフィールドのPhoneContactsを自動入力します

  9. 9

    Laravelでのチェックボックスの選択に基づいて、フィールドの値をデータベースに送信します

  10. 10

    Excel-セルの内容に基づいてユーザーフォームチェックボックスの値を設定します

  11. 11

    チェックボックスのステータスに基づいて、サブフォームの非表示フィールドを表示に設定します

  12. 12

    チェックボックスに基づいてjQueryでフォームアクションを変更する方法

  13. 13

    フォームフィールドの現在のセットに対する回答に基づいて次のフォームフィールドのセットが変更されるロジックを備えた、さまざまなフォームフィールドを持つ動的フォーム

  14. 14

    ドロップダウンボックスからの変更時に選択されたものに基づいて、他の入力フィールドを作成するためのフォームを作成します

  15. 15

    チェックボックスがオンになっているかどうかに応じて、フォームコントロールまたはフォームグループの有効性を変更する方法を角度で示します。リアクティブフォームを使用します。

  16. 16

    Jquery:チェックボックスのチェック/オフに基づいてラベルのクラスを変更します

  17. 17

    mysqlデータベースのテーブルのフィールドに基づいてチェックボックスにステータスを表示しているフォームを作成編集するにはどうすればよいですか?

  18. 18

    PowerShellフォーム| 署名されたチェックボックスに基づいてラベルを移動する

  19. 19

    1つのチェックボックスをターゲットにし、その値に基づいて入力フィールドを表示する方法

  20. 20

    php-選択ボックスの選択に基づいて非表示のフォームフィールド値を取得します

  21. 21

    チェックボックスに基づいて、ブートストラップボタンを無効からアクティブに変更します

  22. 22

    Django管理フォームフィールド-オブジェクトに依存するクエリ結果を選択ボックスに表示します

  23. 23

    チェックボックスがオンになっているかどうかに基づいて、入力テキストフィールドの値を変更するにはどうすればよいですか?

  24. 24

    PHPは複数のフォームフィールドをチェックボックスフィールドに処理します

  25. 25

    スプレッドシートのセル値に基づいて、htmlformのチェックボックスを自動的にチェックします

  26. 26

    選択したチェックボックスに基づいてフォームの一部を表示/非表示にしますか?

  27. 27

    MS Accessフィルターを使用し、ボタンに基づいて複数のチェックボックスをtrue / falseにします

  28. 28

    チェックボックスに基づいて別のフォームフィールドを設定するにはどうすればよいですか?

  29. 29

    Rails 4:RailsでJQueryを使用してチェックボックス値に基づいてテキストフィールドを無効にする方法

ホットタグ

アーカイブ