多対多フィールド(Python 3.9、Django 3)のYAMLデータを構造化するにはどうすればよいですか?

デイブ

Python3.9とDjango3.0を使用しています。以下のモデルを定義しました。2番目は最初と多対多の関係を持っています...

class CoopType(models.Model):
    name = models.CharField(max_length=200, null=False)

    objects = CoopTypeManager()

    class Meta:
        # Creates a new unique constraint with the `name` field
        constraints = [models.UniqueConstraint(fields=['name'], name='coop_type_unq')]

...
class Coop(models.Model):
    objects = CoopManager()
    name = models.CharField(max_length=250, null=False)
    types = models.ManyToManyField(CoopType, blank=False)
    addresses = models.ManyToManyField(Address)
    enabled = models.BooleanField(default=True, null=False)
    phone = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_phone')
    email = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_email')
    web_site = models.TextField()

子エンティティに対して、この「get_by_natural_key」メソッド(名前フィールド)を定義しました...

class CoopTypeManager(models.Manager):

    def get_by_natural_key(self, name):
        return self.get_or_create(name=name)[0]

複数のタイプでCoopを作成できるように、YAMLを構造化するにはどうすればよいですか?このYAMLは、タイプが1つしかない場合に正常に機能します

  pk: 243
  fields:
    name: "Dill Pickle Food Co-op"
    types:
    - ['food coop']

しかし、私が複数のタイプを追加しようとすると、そのように...

  pk: 243
  fields:
    name: "Dill Pickle Food Co-op"
    types:
    - ['store', 'food coop']

このエラーが発生します...

django.core.serializers.base.DeserializationError: Problem installing fixture '/tmp/seed_data.yaml': get_by_natural_key() takes 2 positional arguments but 3 were given: (directory.coop:pk=243) field_value was '['store', 'food coop']'
ウィレムヴァンオンセム

これは2つのアイテムで行います。

pk: 243
  fields:
    name: "Dill Pickle Food Co-op"
    types:
    - ['food coop']
    - ['store']

リストには、タイプの自然キーがリストされています。したがって、nameしかないため、ここでは2つの値を使用できません

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Djangoの多対多フィールドからデータを取得するにはどうすればよいですか?

分類Dev

Django:sqlite3データベースのフィールドを追加/削除するにはどうすればよいですか?

分類Dev

Djangoユーザーが多対多のフィールドに存在するかどうかを確認するにはどうすればよいですか?

分類Dev

Djangoモデルの多対多フィールドの総数を取得するにはどうすればよいですか?

分類Dev

1つの雑誌に3人以上の著者フィールドを追加するにはどうすればよいですか?Djangoモデルで

分類Dev

Djangoのデータベースから3人以上のユーザーをランダムに取得するにはどうすればよいですか?

分類Dev

Active Directoyのdjango-python3-ldap認証を構成するにはどうすればよいですか?

分類Dev

フィルタ付きのDjango多対多フィールド

分類Dev

djangoの多対多フィールドを修正する方法

分類Dev

Djangoの暗黙の多対多(多対多対多)関係のモデルフィールド

分類Dev

Djangoで多対多フィールドをオプションにするにはどうすればよいですか?

分類Dev

多対多の関連オブジェクトのフィールドに基づいて、djangoでモデルをフィルタリングするにはどうすればよいですか?

分類Dev

djangoのsqlite3データベースで全文検索を使用するにはどうすればよいですか?

分類Dev

djangoで「データベースがロックされています」sqlite3エラーを回避するにはどうすればよいですか?

分類Dev

1 3 5 7または9で終わるすべてのクラスをターゲットにするにはどうすればよいですか?

分類Dev

Accessフォームで多対多の関係で3番目のテーブルにデータを入力するにはどうすればよいですか?(MySQLバックエンド)

分類Dev

Djangoには多対多のフィールドが含まれています

分類Dev

14.04にpython3-djangoをインストールするにはどうすればよいですか?

分類Dev

多対多フィールド用のDjango ModelForm

分類Dev

Django ORM:再帰的な多対多のフィールド結合

分類Dev

djangoで多対多のフィールドを適切に表示する方法

分類Dev

多対多フィールド戻りなしdjango

分類Dev

Django多対多関係更新フィールド

分類Dev

djangoデータベースのエントリ数を制限するにはどうすればよいですか?デフォルトのデータベース(sqlite3)を使用する

分類Dev

9x9アレイを9つの3x3コンポーネントに分割するにはどうすればよいですか

分類Dev

Django for Python 3.xをインストールするにはどうすればよいですか?

分類Dev

Django for Python 3.xをインストールするにはどうすればよいですか?

分類Dev

多対多のフィールドDjangoフォームを保存する

分類Dev

Djangoの多対多フィールドを検索する方法は?

Related 関連記事

  1. 1

    Djangoの多対多フィールドからデータを取得するにはどうすればよいですか?

  2. 2

    Django:sqlite3データベースのフィールドを追加/削除するにはどうすればよいですか?

  3. 3

    Djangoユーザーが多対多のフィールドに存在するかどうかを確認するにはどうすればよいですか?

  4. 4

    Djangoモデルの多対多フィールドの総数を取得するにはどうすればよいですか?

  5. 5

    1つの雑誌に3人以上の著者フィールドを追加するにはどうすればよいですか?Djangoモデルで

  6. 6

    Djangoのデータベースから3人以上のユーザーをランダムに取得するにはどうすればよいですか?

  7. 7

    Active Directoyのdjango-python3-ldap認証を構成するにはどうすればよいですか?

  8. 8

    フィルタ付きのDjango多対多フィールド

  9. 9

    djangoの多対多フィールドを修正する方法

  10. 10

    Djangoの暗黙の多対多(多対多対多)関係のモデルフィールド

  11. 11

    Djangoで多対多フィールドをオプションにするにはどうすればよいですか?

  12. 12

    多対多の関連オブジェクトのフィールドに基づいて、djangoでモデルをフィルタリングするにはどうすればよいですか?

  13. 13

    djangoのsqlite3データベースで全文検索を使用するにはどうすればよいですか?

  14. 14

    djangoで「データベースがロックされています」sqlite3エラーを回避するにはどうすればよいですか?

  15. 15

    1 3 5 7または9で終わるすべてのクラスをターゲットにするにはどうすればよいですか?

  16. 16

    Accessフォームで多対多の関係で3番目のテーブルにデータを入力するにはどうすればよいですか?(MySQLバックエンド)

  17. 17

    Djangoには多対多のフィールドが含まれています

  18. 18

    14.04にpython3-djangoをインストールするにはどうすればよいですか?

  19. 19

    多対多フィールド用のDjango ModelForm

  20. 20

    Django ORM:再帰的な多対多のフィールド結合

  21. 21

    djangoで多対多のフィールドを適切に表示する方法

  22. 22

    多対多フィールド戻りなしdjango

  23. 23

    Django多対多関係更新フィールド

  24. 24

    djangoデータベースのエントリ数を制限するにはどうすればよいですか?デフォルトのデータベース(sqlite3)を使用する

  25. 25

    9x9アレイを9つの3x3コンポーネントに分割するにはどうすればよいですか

  26. 26

    Django for Python 3.xをインストールするにはどうすればよいですか?

  27. 27

    Django for Python 3.xをインストールするにはどうすればよいですか?

  28. 28

    多対多のフィールドDjangoフォームを保存する

  29. 29

    Djangoの多対多フィールドを検索する方法は?

ホットタグ

アーカイブ