2014-02-24 2 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'객체를 호출 할 수 없습니다. 나는 데이터베이스 테이블에 제출할 때 테이블 이름으로 subject 값을 전달하려고합니다. 이것은 가변 주제의 다른 값에 의한 코드의 다중 사용을 허용하는 것입니다.Django 'unicode'객체를 호출 할 수 없습니다.

+0

안녕하세요 cristiano2lopes. 당신 말이 맞아요. 모델을 만든 적절한 이름을 사용할 때 작동합니다. 하지만 문제는이 코드가 데이터베이스의 29 개 개별 테이블에 속한 약 29 개의 과목에 사용되므로 코드의 길이를 줄이고 싶다는 것입니다. – user2979827

답변

0

변수 주체 (문자열 인 것 같음)와 모델/개체를 만들 때 호출 할 수있는 대상간에 충돌이 있습니다. 아마도 주제 클래스의 가져 오기를 무시하는 로컬 것.

필자는 Python 규칙에서 모델 이름으로 Subject를 사용합니다. 실제로 필요하다면, 지역 변수 주체 이름을 변경하거나 다른 이름으로 주체 클래스를 가져 오십시오.

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 그런 식으로 코드를 구성하는 것이 문제입니다. 유니 코드 관련 질문은 그 것과 관련이 없습니다. 빠른 수정을 위해 변수의 이름을 바꾸거나 Python의 클래스에 적절한 대문자 사용을 사용해야합니다. 그렇게하면 더 이상 충돌하지 않을 것입니다. – cristiano2lopes

관련 문제