2010-05-03 54 views
1

我有用户的网站谁可以在大学采取条款:Django的:ManyRelatedManager不赎回

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' 对象不是可调用

我在做什么错?

回答

3

尝试:

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

当你写takingTerms()你实际上是调用takingTerms的方法,并自该属性是ManyRelatedManager一个实例,而不是一个可调用的方法,你得到这个错误。