Django 向模型添加两个unicode方法?

Django 向模型添加两个unicode方法?,django,django-models,Django,Django Models,除了默认管理器(objects=model.manager())之外,我还使用自定义模型管理器。我想在模型中添加两个\uuuuuuunicode\uuuuuu方法——一个用于默认管理器,另一个用于自定义管理器;否则,unicode会对自定义管理器的结果抛出一个错误,该结果不包含unicode中用于默认管理器的某些变量 例如—— 有办法做到这一点吗?谢谢。您的问题没有说明您的错误类型,因此是不完整的 不幸的是,unicode是一个Python构造。你可以只吃一个 相反,您需要修复将对象格式化为字符

除了默认管理器(
objects=model.manager()
)之外,我还使用自定义模型管理器。我想在模型中添加两个
\uuuuuuunicode\uuuuuu
方法——一个用于默认管理器,另一个用于自定义管理器;否则,unicode会对自定义管理器的结果抛出一个错误,该结果不包含unicode中用于默认管理器的某些变量

例如——


有办法做到这一点吗?谢谢。

您的问题没有说明您的错误类型,因此是不完整的

不幸的是,unicode是一个Python构造。你可以只吃一个

相反,您需要修复将对象格式化为字符串以使用自定义方法的位置

例如

而不是

  text = u"Something " + obj

如果问题是unicode方法中出现的异常,则需要以不发生异常的方式编写该方法。例如,不要使用未初始化的变量。

我在
\uuuuuUnicode\uuuu
方法中添加了一个
try/except
,以简化它:

def __unicode__(self):
    try:
        self.user
        return "%s(%s)"%(self.user, self.network)
    except (User.DoesNotExist, Network.DoesNotExist):
        return "%s(%s)"%(self.full_name, self.credit_count)

“…unicode为自定义管理器的结果引发错误。”。。。这是什么意思?
  text = u"Something " + obj
def __unicode__(self):
    try:
        self.user
        return "%s(%s)"%(self.user, self.network)
    except (User.DoesNotExist, Network.DoesNotExist):
        return "%s(%s)"%(self.full_name, self.credit_count)