Python / DJango属性错误:模型对象没有属性对象

时间:2015-09-03 13:56:32

标签: python django django-forms django-queryset

forms.py:

from django.db import models
from django import forms
from pset.models import problem , testcases 

class problems(forms.ModelForm):
    class Meta:
        model=problem
        fields=['pcode','pdesc']

class testcases(forms.ModelForm):
    class Meta:
        model=testcases
        fields=['pcode','inp','out']

    def __init__(self,*args,**kwargs):
        super(testcases,self).__init__(*args,**kwargs)
        self.fields['pcode']=forms.ChoiceField(choices=get_list())


def get_list() :
    tup=((x,x) for x in problem.object.values_list('pcode',flat=True))
    return tup

这里有两个模型,一个是问题,另一个是测试用例。 我试图在其中包含一个下拉菜单。 因为它试图从问题模型中包含pcode列。

但不知道为什么会出现错误:

/ setup / add_cases /的AttributeError 类型对象'问题'没有属性' object' 在函数get_list中。

如果需要:

Models.py

from django.db import models

# Create your models here. 
class problem(models.Model) :
    pcode=models.CharField(max_length=10,unique=True)
    pdesc=models.TextField() 

    def __str__(self) :
        return self.pcode   

class testcases(models.Model):
    pcode=models.CharField(max_length=10)
    inp=models.FileField(upload_to='testcases',blank=True)
    out=models.FileField(upload_to='testcases',blank=True)

    def __str__(self):
        return self.pcode
如果遗漏任何细节,

道歉。

2 个答案:

答案 0 :(得分:3)

这就是这一行的错字:

problem.object.values_list('pcode',flat=True))

你错过了'来自物体。

problem.objects.values_list('pcode',flat=True))

顺便说一下,惯例是将CamelCase用于你的Django模型,并使它们单数而不是复数,例如: ProblemTestCase代替problemtestcases

答案 1 :(得分:1)

您只是输错了,在get_list函数中,它应该是objects而不是object

def get_list() :
    tup=((x,x) for x in problem.objects.values_list('pcode',flat=True))
    return tup