【问题标题】:Django 'unicode' object is not callableDjango 'unicode' 对象不可调用
【发布时间】:2014-02-24 11:55:38
【问题描述】:
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' object is not callable。我尝试在提交到数据库表时将主题的值作为表名传递。这是为了允许变量subject的不同值多次使用代码。

【问题讨论】:

  • 嗨克里斯蒂亚诺2洛普斯。你说的对。当我使用创建模型的适当名称时,它可以工作。但问题是我想缩短代码的长度,因为此代码将用于属于数据库中 29 个单独表的大约 29 个主题。

标签: python django unicode


【解决方案1】:

变量主体(我认为它是一个字符串)与您用来创建模型/对象的可调用主体之间存在冲突。本地的可能会覆盖主题类的导入。

我会使用 Subject 作为 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,
                    )

【讨论】:

  • @user2979827 这是以这种方式组织代码的问题。与 unicode 相关的问题与此无关。您可能应该重命名变量以进行快速修复,或者对 python 中的类使用适当的 CapWords 大小写。这样你就不会再发生冲突了。
猜你喜欢
  • 2015-10-13
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 2017-09-13
  • 2011-06-07
  • 2013-12-16
相关资源
最近更新 更多