私はDjangoでプロジェクトを書いています。そこでは5種類のユーザーグループがあります。
- グループ1
- グループ2
- ..。
次に、ユーザーと多くの関係を持つモデル、アイテムがあります。アイテムには、1人の所有者(Group1のユーザー)、顧客(Group2のユーザー)、および多くのRelatedUser(Group3のユーザー)があります。
この関係を書く正しい方法はどれかと思います。私は次のようなものを書きたいです:
class Item(models.Model):
owner = models.ForeignKey(Owner)
customer = models.ForeignKey(Customer)
users = models.ManyToManyField(RelatedUser)
何らかの方法でOwner、Customer、RelatedUserクラスを定義しました。
私はこれを達成する方法がわかりません。テーブルUserが必要なだけなので、モデルの継承は使用しません。マネージャーでさえ私を助けていないようです。実際、私は次のようなものを使用しています。
try:
customer = models.ForeignKey(User,
related_name='cust',
limit_choices_to = {'groups__in': [Group.objects.get(name = 'customers')]})
except:
customer = models.ForeignKey(User,
related_name='cust')
主な理由は、フォームを開始するときに空のデータベースグループ「customers」が存在せず、エラーが発生するためです。
これを買う余裕がある正しい方法はどれですか?
前もって感謝します