0
私はWeb開発の初心者ですので、この質問は簡単ではないかもしれませんが、私と一緒にご負担ください。私が2つの異なる方法で別のユーザーに従うことができるソーシャルネットワークに取り組んでいます...とにかく...私は関係を定義するために2つのモデルを作成しました。多対多関係は次のようになります。Djangoでの多対多の誤解
このモデルを完全に独立させるにはどうすればよいですか?だから、ユーザーが500Followersと200Guestsを持つことができると言うことができますか?
私は以下のjavascriptコードを使用してフォローボタンを切り替えますが、その両方が増加します。これは問題の偉大な概要ではないかもしれませんが、それは私がこれを初めて知ったからです。試してみてください。私は途中でdjangoを使用しています。
class Follower(models.Model):
user_from = models.ForeignKey(User, related_name='rel_from_set')
user_to = models.ForeignKey(User, related_name='rel_to_set')
created = models.DateTimeField(auto_now_add=True, db_index=True)
class Meta:
ordering = ('-created',)
def __str__(self):
return "{} is now a following".format(self.user_from, self.user_to)
class Guests(models.Model):
user_fromt = models.ForeignKey(User, related_name='yel_from_set')
user_tot = models.ForeignKey(User, related_name='yel_to_set')
created = models.DateTimeField(auto_now_add=True, db_index=True)
class Meta:
ordering = ('-created',)
def __str__(self):
return '{} follows {}'.format(self.user_from, self.user_to)
User.add_to_class('follows', models.ManyToManyField('self',
through=Guests, related_name='guest', symmetrical=False))
User.add_to_class('follows', models.ManyToManyField('self',
through=Follwer, related_name='guest', symmetrical=False))
ビュー
def user_follow(request):
user_id = request.POST.get('id')
action = request.POST.get('action')
if user_id and action:
try:
user = User.objects.get(id=user_id)
if action == 'follow':
Contact.objects.get_or_create(user_from=request.user,
user_to=user)
create_action(request.user, 'is now a fan of', user)
else:
Contact.objects.filter(user_from=request.user,
user_to=user).delete()
return JsonResponse({'status':'ok'})
except User.DoesNotExist:
return JsonResponse({'status':'ko'})
return JsonResponse({'status':'ko'})
ダニエル・ローズマン。それについて簡単に説明できますか?...私はこれを知っていました。私はガイドとして "Django by Example"を使用しています。ありがとう –