0

私は次のモデルを持っています:

class Question(models.Model):
    question = models.CharField(max_length=100)

class Answer(models.Model):
    question = models.ForeignKey(Question)
    value = models.CharField(max_length=200)

特定の質問オブジェクトの値が「はい」の回答の割合を計算したいのですが、エラーが発生しますTypeError int() argument must be a string or a number, not 'method'。count は int データ型を返しませんか?

私の見解:

def questn(request, question_id):
    q = Question.objects.select_related().get(id=question_id)
    qc = q.answer_set.count
    qyc = q.answer_set.filter(value="YES").count
    qycp = ( int(qy) / int(qc) ) * 100
    return render(request, 'base.html', {
        'q':q, 
        'qc':qc, 
        'qyc':qyc,
        'qycp':qycp,
    })
4

1 に答える 1

3

呼び出す必要がありますcount:

qc = q.answer_set.count()

を追加すると()、メソッドが呼び出されますcount。それを持たないことは、メソッド自体をqc参照させます。count

次に例を示します。

>>> a = [1, 2, 3, 4]
>>> a.clear
<built-in method clear of list object at 0x02172198>
>>> a
[1, 2, 3, 4]
>>> a.clear()
>>> a
[]
>>>

ご覧のとおり、リストのメソッドは、が追加さclearれた後にのみ呼び出されます。()

于 2013-10-04T18:26:26.117 に答える