2014-02-24 105 views
0
subjects_db = UTMESubjects.objects.values_list("List_of_Subjects", flat=True).order_by('id')[:] 
     #return HttpResponse(subjects_db) 
     for subjects in subjects_db: #inspects available subjects in db 
      if subject in subjects: 
       db_table = subject 
       data = subject(
         Questions = Question, 
         Options_1 = option1, 
         Options_2 = option2, 
         Options_3 = option3, 
         Options_4 = option4, 
         Options_5 = option4, 
         Answers = answer, 
         Difficulty_Level = difficulty_level, 
         Question_Year = question_year, 
         Diagram = "null", 
         Status = value, 
         ) 
       data.save() 

我一直得到TypeError'unicode'对象不可调用。提交给数据库表时,我尝试将主题的值作为表名传递。这是为了允许通过变量主题的不同值来多次使用代码。Django'unicode'对象不可调用

+0

hi cristiano2lopes。你是对的。当我使用创建模型的适当名称时,它可以工作。但问题是我想缩短代码的长度,因为此代码将用于数据库中29个单独表格的约29个主题。 – user2979827

回答

0

变量主题(我想是一个字符串)和您正在创建模型/对象的可调用主题之间存在冲突。当地的一个可能压倒主体类的进口。

我将使用主题作为模型名称为Python约定。如果确实需要,请使用其他名称更改本地变量主题名称或导入主题类。

import subject as subject_class 
data = subject_class(
        Questions = Question, 
        Options_1 = option1, 
        Options_2 = option2, 
        Options_3 = option3, 
        Options_4 = option4, 
        Options_5 = option4, 
        Answers = answer, 
        Difficulty_Level = difficulty_level, 
        Question_Year = question_year, 
        Diagram = "null", 
        Status = value, 
        ) 
+0

@ user2979827这是以这种方式组织代码的问题。 unicode相关的问题与此无关。您应该重新命名变量以进行快速修复,或者在Python中为类使用适当的CapWords大小写。这样你就不会再有冲突了。 – cristiano2lopes