私のニュース集計アプリケーションのモデル、ビュー、およびテンプレートを設計しています。私はテンプレートを使用して、データベースのオプションを持つ複数の選択肢のフィールドフォームをユーザーに提供します。私のモデルでこれをどのように設計するのですか?データベース内のオプションのDjango multiple-choiceフィールド
私はManyToManyField(ジャーナリストと記事を持つ人物)に関するDjangoのドキュメントを読んでいましたが、私のケースでは、記事がないジャーナリストとジャーナリストなしで存在する可能性があるため、 。
私はユーザーがいます。私はストリームを持っています。 Streamsは、ユーザーがCNN、Twitter、Googleニュースなどの集計された見出しのスニペットに従うためにサインアップすることができるニュースサイトの集まりです。ストリームはユーザーなしで存在することができます。ストリームは多くのユーザーを持つことができます。ユーザーはストリームを作成することはできません。実際には、ストリームを選択しない限り、すべてのユーザーアカウントはアプリで開始されません。ユーザーは多数のストリームを持つことができます。
テンプレートでは、データベース内のすべてのストリームオプションのリストを使用してフォームを作成したいと考えています。ユーザーがストリームを選択すると、そのストリームはダッシュボードビューに追加されます。 Streamsを追加および削除できます。しかし、1つのTwitter、1つのGoogle Newsなどのソースしかありません。ユーザー・モデルでは典型的な選択肢のオプションを使用できません。「動的」で、Streamsデータベースから直接取り出したいと考えています。
これは私が今持っているものですが、私はそれは適切ではないことを知っている:
ストリーム/ジャストmodels.py
from django.db import models
from django.contrib.auth.models import User
class Stream(models.Model):
user = models.ManyToManyField(User, blank=True, null=True)
name = models.CharField(max_length=30)
ユーザー/ models.py
from django.db import models
class User(models.Model):
name = models.CharField(max_length=30)
'''''
#TODO: make this dynamic, streams is pulling from Streams model
streams = (
('Google News'),
('Yahoo News'),
('Twitter'),
('CNN'),
('New York Times'),
('NBC News'),
('Huffington Post')
)
stream_choices = models.CharField(max_length=9, choices=streams)
'''''
ああ!私は、中間のテーブルを参照してください!ありがとうございました。 – cssidy