我需要一个如下的系统,所以我试图依靠已经编写好的代码。 这些观点并不存在,我试图单独写,但我写不出来。 我是Django的新手,很抱歉我不太懂英语。 提前谢谢
错误
/accounts/segui/2/1/处的值错误<;跟随者:跟随者对象(无)>;实例未保存。使用bulk=False或先保存对象
models.py
from django.db import models
from django.contrib.auth import get_user_model
User = get_user_model()
class Follower(models.Model):
follower = models.ForeignKey(User, on_delete=models.PROTECT, related_name='following')
following = models.ForeignKey(User, on_delete=models.PROTECT, related_name='followers')
class Meta:
unique_together = ('follower', 'following')
def __unicode__(self):
return u'%s segue %s' % (self.follower, self.following)
views.py
def AddFollowerView(request, pk, id):
user = get_object_or_404(User, pk=pk)
userFollow = get_object_or_404(User, id=id)
follower= Follower()
follower.objects.bulk_create([
follower(follower=user, following=userFollow),
])
return HttpResponseRedirect('/stories/')
def RemoveFollowerView(request, pk, id):
user = get_object_or_404(User, pk=pk)
userFollow = get_object_or_404(User, id=id)
user.following.remove(Follower(following=userFollow))
user.following.save()
return HttpResponseRedirect('/stories/')
url.py
path('follow/<int:pk>/<int:id>/', AddFollowerView, name="add-follower"),
path('not-follow/<int:pk>/<int:id>/', RemoveFollowerView, name="remove-follower"),
如果这个问题被问了好几次,我很抱歉,但我不知道如何解决它
您在单个模型实例上调用管理器方法,但只能在queryset或未实例化的类上调用管理器方法(抱歉,解释不好,请随意改进)。这可以解释错误
AttributeError at /accounts/follow/2/1/ Manager isn't accessible via Follower instances
因此,实际上,删除这些行:
并替换为:
或:
相关问题 更多 >
编程相关推荐