从昨天到今天,我一直在尝试创建一个允许用户互相关注个人资料的应用程序,但到目前为止我还没有成功。
我无法创建一个允许我从他关注的特定用户中检索用户的关注函数。
例子 。如果约翰跟随戴安娜。我希望能够检索名为 Diana 的用户并将其与我的模块一起使用。
如果这没有意义,我真的很抱歉。我正在尽力解释我的情况。
class Person(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
class Board(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
这些解决方案中的大多数都没有给我任何查询
这是我尝试过的解决方案之一。
class UserLink(models.Model):
from_user = models.ForeignKey(User , related_name = "following_set")
to_user = models.ForeignKey(User , related_name = "follower_set")
date_added = models.DateTimeField(default = datetime.now)
def __unicode__(self):
return "%s is following %s" % (self.from_user.username,self.to_user.username)
def save(self,**kwargs):
if self.from_user == self.to_user:
raise ValueError("Cannot follow yourself ")
super(UserLink , self).save(**kwargs)
class Meta:
unique_together = (('to_user','from_user'),)
我试图检索特定用户关注的用户并将其用于我的模块,例如 Person,但它给了我一个错误 No query exist。
def Follow(request,username=""):
if request.method == "POST":
username = request.POST.get('follow',False)
user = User.objects.get(username=username)
UserLink.objects.create(from_user=request.user,to_user=user)
return HttpResponseRedirect(reverse('world:Profile'))
return HttpResponseRedirect(reverse('world:Profile'))
我也尝试了这个跟随功能,但它只跟随他自己,我将自己更改为用户,但它不允许我让这个人跟随
class UserProfile(models.Model):
user = models.OneToOneField(User)
follows = models.ManyToManyField('self', related_name='followed_by', symmetrical=False)
>>>from pet.models import *
>>>from django.contrib.auth.models import User
>>>user = User.objects.get(username='Peter')
>>>user1 = User.objects.get(username='Sarah')
>>>p = UserProfile.objects.filter(user=user,follows=user1)
>>>Error no field called follows
如何创建一个允许检索他们关注的人并将其与我的模块(例如 Person)一起使用的关注类?
有人能帮我吗 。感谢社区!