Python Django视图:+;的操作数类型不受支持:';int';和';非类型';

Python Django视图:+;的操作数类型不受支持:';int';和';非类型';,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我循环浏览数据库中存储的多个问题,每个问题有5个答案(开放、认真、外向、随和、神经质),我试图计算每个答案重复的次数并存储分数 型号: class Reponses(models.Model): ScoreOp = models.IntegerField(blank=True,null=True) ScoreCon = models.IntegerField(blank=True,null=True) ScoreExt = models.IntegerField(blan

我循环浏览数据库中存储的多个问题,每个问题有5个答案(开放、认真、外向、随和、神经质),我试图计算每个答案重复的次数并存储分数

型号:

class Reponses(models.Model):
    ScoreOp = models.IntegerField(blank=True,null=True)
    ScoreCon = models.IntegerField(blank=True,null=True)
    ScoreExt = models.IntegerField(blank=True,null=True)
    ScoreAgr = models.IntegerField(blank=True,null=True)
    ScoreNeu = models.IntegerField(blank=True,null=True)
    Product = models.OneToOneField("Product", on_delete=models.CASCADE,null=True)

class Personalite(models.Model):
    Question = models.CharField(max_length=50,blank=True)
    openness = models.CharField(max_length=20,blank=True)
    conscientiousness = models.CharField(max_length=20,blank=True)
    extraversion = models.CharField(max_length=20,blank=True)
    agreeableness = models.CharField(max_length=20,blank=True)
    neuroticism = models.CharField(max_length=20,blank=True)
    models.ForeignKey("Reponses", on_delete=models.CASCADE,null=True)
观点:

def home_views(request):
questions= Personalite.objects.all()
product = Product.objects.get(id=5)
if request.method == 'POST':
    try:
        reponse = Reponses.objects.create()
        reponse = Reponses(Product= product)
        allRep = []
        allRep = request.POST.getlist('poll')
        for Rep in allRep:
            print(Rep)
            if Rep == 'openness':
                reponse.ScoreOp = reponse.ScoreOp + 1

            elif Rep == 'conscientiousness':
                reponse.ScoreCon += 1

            elif Rep == 'extraversion':
                reponse.ScoreExt += 1

            elif Rep == 'agreeableness':
                reponse.ScoreAgr += 1

            elif Rep == 'neuroticism':
                reponse.ScoreNeu += 1
            else :
                print('HAHAHAHHAHAAH')
            
        reponse.save()
    except NameError:
        print("An exception occurred",NameError)

context={
    'questions':questions
}
return render(request , "home.html",context)
reponse=Reponses(Product=Product)
这不会保存需要调用
save()
方法的响应对象,因此
reponse.ScoreOp
为无

试试这个

首先正确地创建响应对象

 reponse = Reponses.objects.create(Product=product)
另外,不必为整型字段指定
null=True
,而是提供默认值
0

ScoreOp = models.IntegerField(default=0) # properly migrate after change in model
现在在视图中

 if Rep == 'openness':
      reponse.ScoreOp += 1

您的问题是什么?在哪行发生了什么错误?