私はDjangoでもっと新しくなりました。私はdjangoがデータベースに複数選択リストボックスの値を格納する方法を説明している記事またはSOスレッドを検索していましたが、それを見つけることができませんでした。複数の選択値をdjangoに格納する
私の場合、カテゴリリストボックス(例:C1,C2,C3
)があります。カテゴリ名は長いものにすることができます。私は単一のユーザーに複数のカテゴリを割り当てる必要があります。ユーザーには単一のカテゴリに割り当てることもできます。
class Category(models.Model):
user = models.ForeignKey(User)
cat_name = models.CharField(max_length=100)
#or cat_name = models.TextField()
私の質問は、DjangoがDBに値を格納する方法である(cat_nameのfielsが、それはDBに保存する方法によって異なります)
id user_id cat_name
1 1 C1&C2&C3
2 2 C1&C2
3 3 C3
または
id user_id cat_name
1 1 C1
2 1 C2
3 1 C3
4 2 C1
5 2 C2
6 3 C3
最初のケースの場合は、TextField
以外のCharField
を使用します。最初のケースで使用された&は単なる例です。
すべての提案/リンクは高く評価されています。前もって感謝します。
マルチセレクションのリストボックスは、ウェブサイトのフロントエンドにあるもので、データベースに保存する方法は、選択するモデルフィールドによって異なります。別のモデルで 'ManyToManyField'を使うと、2番目の例のようなものが得られます。 – bouteillebleu
@bouteillebleu多くのありがとう。私は管理者の複数選択リストボックスを持ち、管理者はユーザーにカテゴリを割り当てます。 'ManyToManyField'を' separate model'で使う方法がありますか? –
https://stackoverflow.com/questions/45407132/django-many-to-many-relationship-categoryのmodels.pyの例はまったく役に立ちますか? https://docs.djangoproject.com/en/1.11/topics/db/examples/many_to_many/には、一般的な 'ManyToManyField'の助けが必要です。 – bouteillebleu