値を返さないようにDjangoモデルの外部キーフィールドを設定するにはどうすればよいですか?

一言もない

私は次のようなDjangoモデルを持っています:

class hotel(models.Model):
   name = models.CharField(max_length=60)
   city = models.ForeignKey('city', on_delete=models.DO_NOTHING)
   state = models.ForeignKey('state', on_delete=models.DO_NOTHING)
   country = models.ForeignKey('country', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "hotels"

class city(models.Model):
   name = models.CharField(max_length=60)
   state = models.ForeignKey('state', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "cities"

class state(models.Model):
   name = models.CharField(max_length=60)
   country = models.ForeignKey('country', on_delete=models.DO_NOTHING)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "states"

class country(models.Model):
   name = models.CharField(max_length=60)
   code = models.CharField(max_length=160)
   def __str__(self):
       return self.name
   class Meta:
       verbose_name_plural = "countries"

そして、ModelFormは次のようになります。


class Hotel(ModelForm):
    class Meta:
        model = hotel
        fields = '__all__'

[編集] Hotel ModelFormからフォームオブジェクトを作成すると、Djangoは外部キーフィールドの値を自動的に入力します。やめたい。

例えば:

form = Hotel() (Djangoは都市、州、国の値を自動入力します)

Djangoテンプレートですべての国の値をドロップダウンで返すようにしますが、州と都市のドロップダウンでは返しません(したがって、州と都市のドロップダウンをDjangoテンプレートで空のままにしておきます)。どうやってやるの?

PS-これを行う目的は、最初に国の値をロードすることです。ユーザーが選択した国に従って、州、次に都市をロードします。

イアン・シェルビントン

form__init__メソッドで選択肢をオーバーライドするか、フィールドが定義された直後に選択肢を設定するためのちょっとしたトリックを使用できます。

class Hotel(ModelForm):

    class Meta:
        model = hotel
        fields = '__all__'

    # Like this
    state = forms.ModelChoiceField(state.objects.all())
    state.choices = []
    city = forms.ModelChoiceField(city.objects.all())
    city.choices = []

    # Or like this...
    def __init__(self, data=None, *args, **kwargs):
        super().__init__(data=data, *args, **kwargs)
        if not data:
            self.fields['state'].queryset = state.objects.none()
            self.fields['city'].queryset = state.objects.none()

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Django / Django Rest Framework-モデルシリアライザーがモデルの外部キーフィールドをnullに設定できるようにするにはどうすればよいですか?

分類Dev

DjangoでManyToManyフィールドの値を設定するにはどうすればよいですか?

分類Dev

djangoモデルフィールドの値を取得するにはどうすればよいですか?

分類Dev

Sequelizeモデルの外部キーを設定するにはどうすればよいですか?

分類Dev

Waterline ORMを使用してSailsモデルのフィールドのデフォルト値を設定するにはどうすればよいですか?

分類Dev

モデルフィールドのデフォルトをOneToOneField属性値と同じに設定するにはどうすればよいですか?

分類Dev

SQLAlchemyのフィールドに値NULLを設定するにはどうすればよいですか?

分類Dev

PythonでnamedTupleのフィールド値を設定するにはどうすればよいですか?

分類Dev

Django-同じフィールドで2つのモデルを設定するにはどうすればよいですか?

分類Dev

djangoモデルのフィールドを確認するにはどうすればよいですか?

分類Dev

動的モデルのフィールド値を作成するにはどうすればよいですか?

分類Dev

既存のフィールドを別のテーブルへの外部キーとして設定するにはどうすればよいですか?

分類Dev

on_delete属性を使用してユーザーモデルで外部キーフィールドにユーザーのフルネームを設定するにはどうすればよいですか?

分類Dev

Djangoフォーム選択フィールドでデフォルト値を設定するにはどうすればよいですか?

分類Dev

現在ログに記録されているユーザーとしてモデルフィールドの値を設定するにはどうすればよいですか?Django

分類Dev

Django:集約で外部キーフィールドを使用するにはどうすればよいですか?

分類Dev

Djangoモデルの外部キーに条件を追加するにはどうすればよいですか?

分類Dev

Djangoで新しく作成されたカスタムモデルフィールドの値を表示するにはどうすればよいですか?

分類Dev

djangoでフィールドを一意に設定するにはどうすればよいですか?

分類Dev

odooのxmlコードからデフォルトのフィールド値を設定するにはどうすればよいですか?

分類Dev

データクラスのフィールドにデフォルト値があるかどうか、または明示的に設定されているかどうかを確認するにはどうすればよいですか?

分類Dev

デフォルトで変更可能な値を入力フィールドに設定するにはどうすればよいですか?

分類Dev

レコードにデフォルト値を設定するにはどうすればよいですか

分類Dev

Djangoの1つのフィールドからさまざまなモデルタイプを参照するにはどうすればよいですか?

分類Dev

レルムのフィールドにデフォルト値を設定するにはどうすればよいですか?

分類Dev

Webドライバーでテキストフィールドの値を一度に設定するにはどうすればよいですか?

分類Dev

Djangoの外部キーフィールドの__str__メソッドを定義するにはどうすればよいですか?

分類Dev

Django管理者検索フィールドを設定するにはどうすればよいですか?

分類Dev

フィールドが特定の値に設定されていることをテストするにはどうすればよいですか?

Related 関連記事

  1. 1

    Django / Django Rest Framework-モデルシリアライザーがモデルの外部キーフィールドをnullに設定できるようにするにはどうすればよいですか?

  2. 2

    DjangoでManyToManyフィールドの値を設定するにはどうすればよいですか?

  3. 3

    djangoモデルフィールドの値を取得するにはどうすればよいですか?

  4. 4

    Sequelizeモデルの外部キーを設定するにはどうすればよいですか?

  5. 5

    Waterline ORMを使用してSailsモデルのフィールドのデフォルト値を設定するにはどうすればよいですか?

  6. 6

    モデルフィールドのデフォルトをOneToOneField属性値と同じに設定するにはどうすればよいですか?

  7. 7

    SQLAlchemyのフィールドに値NULLを設定するにはどうすればよいですか?

  8. 8

    PythonでnamedTupleのフィールド値を設定するにはどうすればよいですか?

  9. 9

    Django-同じフィールドで2つのモデルを設定するにはどうすればよいですか?

  10. 10

    djangoモデルのフィールドを確認するにはどうすればよいですか?

  11. 11

    動的モデルのフィールド値を作成するにはどうすればよいですか?

  12. 12

    既存のフィールドを別のテーブルへの外部キーとして設定するにはどうすればよいですか?

  13. 13

    on_delete属性を使用してユーザーモデルで外部キーフィールドにユーザーのフルネームを設定するにはどうすればよいですか?

  14. 14

    Djangoフォーム選択フィールドでデフォルト値を設定するにはどうすればよいですか?

  15. 15

    現在ログに記録されているユーザーとしてモデルフィールドの値を設定するにはどうすればよいですか?Django

  16. 16

    Django:集約で外部キーフィールドを使用するにはどうすればよいですか?

  17. 17

    Djangoモデルの外部キーに条件を追加するにはどうすればよいですか?

  18. 18

    Djangoで新しく作成されたカスタムモデルフィールドの値を表示するにはどうすればよいですか?

  19. 19

    djangoでフィールドを一意に設定するにはどうすればよいですか?

  20. 20

    odooのxmlコードからデフォルトのフィールド値を設定するにはどうすればよいですか?

  21. 21

    データクラスのフィールドにデフォルト値があるかどうか、または明示的に設定されているかどうかを確認するにはどうすればよいですか?

  22. 22

    デフォルトで変更可能な値を入力フィールドに設定するにはどうすればよいですか?

  23. 23

    レコードにデフォルト値を設定するにはどうすればよいですか

  24. 24

    Djangoの1つのフィールドからさまざまなモデルタイプを参照するにはどうすればよいですか?

  25. 25

    レルムのフィールドにデフォルト値を設定するにはどうすればよいですか?

  26. 26

    Webドライバーでテキストフィールドの値を一度に設定するにはどうすればよいですか?

  27. 27

    Djangoの外部キーフィールドの__str__メソッドを定義するにはどうすればよいですか?

  28. 28

    Django管理者検索フィールドを設定するにはどうすればよいですか?

  29. 29

    フィールドが特定の値に設定されていることをテストするにはどうすればよいですか?

ホットタグ

アーカイブ