0
我是网络开发新手,所以这个问题可能不是直接的,但请耐心等待。我在一个社交网络上工作,用户可以通过两种不同的方式跟踪另一个用户......安然通道......我创建了两个模型来定义关系。多对多的关系如下。Django多对多的误区
如何让这个模型完全独立于对方?所以可以说一个用户可以有500个粉丝和200个访客?
我使用下面的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”作为指导。谢谢 –