使用事例
私が開発しているアプリは、スタートアップ、求職者、投資家をつなぐものです。申し訳ありませんが、私はすでに約 40% を開発しましたが、まだ名前を付けることができませんでした :) .3 つのエンティティがあります。1 つは、スタートアップ アカウント、エンドユーザー アカウント、および投資家アカウントです。フォロー/フォロー解除機能を追加することを考えています
- エンドユーザーはスタートアップをフォローでき、その逆も可能
- スタートアップは投資家をフォローでき、その逆も可能
- エンドユーザーは他のエンドユーザーをフォローできず、エンドユーザーは投資家をフォローできません
このために、アプリケーションをどのようにモデル化する必要がありますか
これが私が話したエンティティのモデルです
エンドユーザー モデル
class UserSetting(models.Model):
user = models.OneToOneField(User)
job_interest = models.ManyToManyField(Category, related_name='user')
is_email_notification = models.BooleanField(
default=True, help_text="Email me job recommendations based on my interests and preferences")
class Meta:
verbose_name = 'User Setting'
verbose_name_plural = 'User Settings'
def __str__(self):
return self.user.username
スタートアップ モデル
class Startup(models.Model):
name = models.CharField(max_length=200, unique=True,
blank=False, null=False)
slug = models.SlugField(unique=True)
description = models.CharField(max_length=400)
投資家モデル
class Investor(models.Model):
investor = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False,
null=False, help_text='Full Name')
slug = models.SlugField(max_length=200, unique=True)
contact_email = models.EmailField(null=True, blank=True)
# for now I have done like this
followers = models.ManyToManyField(
User, related_name='followers', blank=True)
今のところ、投資家にフォロワー フィールドを含めていることがわかりますが、エンドユーザーがスタートアップをフォローできるように、またその逆もできるように、スタートアップにもフォロワー システムが必要です。また、投資家をフォローする場合、スタートアップのみがフォローできますが、エンドユーザーはフォローしないでください。
これに対する最善の解決策は何ですか?