1

我有一个网站,用户可以在大学接受条款:

class Term(models.Model):
    school = models.ForeignKey(School)
    name = models.CharField(max_length=200)
    isPrimaryTerm = models.BooleanField()
    date = models.DateField()

class MyUser(models.Model):
    user = models.ForeignKey(User, unique=True)
    takingReqSets = models.ManyToManyField(RequirementSet, blank=True)
    takingTerms = models.ManyToManyField(Term, blank=True)
    takingCourses = models.ManyToManyField(Course, through=TakingCourse, blank=True)
    school = models.ForeignKey(School)

当我尝试添加用户正在使用的术语集时,出现错误:

def add_term(request):
    curr_user = User.objects.get(id=request.GET['pk'])
    term = RequirementSet.objects.filter(pk=request.GET['term_pk']).get()

    curr_user.get_profile().takingTerms().add(term)
    curr_user.get_profile().save()

这引发了一个TypeError

'ManyRelatedManager' 对象不可调用

我究竟做错了什么?

4

1 回答 1

3

尝试:

curr_user.get_profile().takingTerms.add(term)

当您编写时,takingTerms()您实际上是在调用takingTerms方法,并且由于该属性是一个实例ManyRelatedManager而不是可调用方法,因此您会收到该错误。

于 2010-05-03T17:48:09.213 回答