我试图从视图中调用my models.py中定义的方法,但收到以下消息:
unbound method add_question_history() must be called with QuestionHistory instance as first argument (got User instance instead)
这是我的模型:
class QuestionHistory(models.Model):
question = models.ForeignKey(Question, blank=True, null=True)
user = models.OneToOneField('auth.User')
created_at = models.DateTimeField(auto_now=True, auto_now_add=False)
def __unicode__(self):
return unicode(self.question)
def add_question_history(user, question):
qs = self.create(
question = question,
user = user
)
self.save()
这就是我在视图中调用此方法的方式:
QuestionHistory.add_question_history(request.user, question_ID)
您试图做的是在没有实例的情况下调用实例方法
似乎您想要的是一个类方法
因此,要使代码正常工作,您必须首先创建一个实例,或者将
add_question_history
创建为类方法举个例子:
制作类方法:
为了更好地理解,请阅读this
相关问题 更多 >
编程相关推荐