Django/Python:单引号导致Django管理接口抛出错误

Django/Python:单引号导致Django管理接口抛出错误,python,django,unicode,Python,Django,Unicode,我是django的新手,我正在写一个twitter克隆来学习它 我有一个像下面这样的模型 class message(models.Model): text = models.TextField() date_n_time = models.DateTimeField(default=datetime.now, null=True,blank=True) parent_2 = models.ForeignKey('self',null=True,blank=True)

我是django的新手,我正在写一个twitter克隆来学习它

我有一个像下面这样的模型

class message(models.Model):
    text = models.TextField()
    date_n_time = models.DateTimeField(default=datetime.now, null=True,blank=True)
    parent_2 = models.ForeignKey('self',null=True,blank=True)    
    def __unicode__(self):
        return str(self.id)+"_"+self.text+"_"+str(self.date_n_time)+"_"+"___"+str(self.parent_2)
现在,我添加了一条文本等于以下内容的消息(引号是我通过Django创建表单输入的内容的一部分)

“戳”

我试图通过管理界面访问消息对象:127.0.0.1:8000/admin/core/message/

我在中收到以下错误消息

“ascii”编解码器无法解码位置9中的字节0xe2:序号不在 范围(128)。您传入了消息:[错误的Unicode数据](类 'core.models.message')

其他堆栈溢出的答案似乎表明这是unicode问题,但如果我将测试更改为

“刺激”

我没有得到任何错误


为什么只有单引号会出现错误?我如何通过django表单/模型代码发现这个问题,最好是在保存输入表单时?

您使用的是Python2.7还是Python3?如果您使用的是Python2.7,请使用
\uuuUnicode\uuuuuuuo()
,否则,请使用
\uuuuu str\uuo()

请查看本节中的“
\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

编辑:
我无法复制您的错误。我可以很好地访问管理员。您是否使用较旧版本的Django(早于1.8)?

请尝试使用它,因为这应该是处理Django文档所认可的unicode字符串的正确方法

def __unicode__(self):
    return u'%s_%s_%s___%s' % (self.id, self.text, self.date_n_time, self.parent_2)

您使用的是Python2.7还是Python3?如果您使用的是Python2.7,请使用
\uuuUnicode\uuuu()
,否则,请使用
\uuu str\uuu()

请查看本节中的“
\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

编辑:
我无法复制您的错误。我可以很好地访问管理员。您是否使用较旧版本的Django(早于1.8)?

请尝试使用它,因为这应该是处理Django文档所认可的unicode字符串的正确方法

def __unicode__(self):
    return u'%s_%s_%s___%s' % (self.id, self.text, self.date_n_time, self.parent_2)

我会尝试将您的unicode更改为以下内容:

def __unicode__(self):
    return u'{}"_"{}"_"{}"_""__"{}'.format(self.id, self.text, self.date_n_time, self.parent_2)

这应该返回你最初想要的,包括引文。我也会考虑把代码部分>代码“→”、“代码”>代码> >代码>。如果它们要相互跟随,就没有真正的理由来分隔下划线。

如果不需要引号,只需删除它们。保留
{}
。与
“%s”%(上下文)


祝你的克隆好运!

我会尝试将你的unicode更改为以下内容:

def __unicode__(self):
    return u'{}"_"{}"_"{}"_""__"{}'.format(self.id, self.text, self.date_n_time, self.parent_2)

这应该返回你最初想要的,包括引文。我也会考虑把代码部分>代码“→”、“代码”>代码> >代码>。如果它们要相互跟随,就没有真正的理由来分隔下划线。

如果不需要引号,只需删除它们。保留
{}
。与
“%s”%(上下文)


祝你的克隆好运!

我一提交,就意识到模型具有unicode功能。这就解释了错误产生的原因。但我不知道如何解决此问题。感谢任何帮助。我一提交,就意识到模型具有unicode功能。这就解释了错误产生的原因。但我不知道如何解决此问题。感谢您的帮助。我使用的是Python2.7。正如我在评论中提到的,我使用的是unicode,所以这不是问题。管理面板解释它的方式是问题。我使用的是Python2.7。正如我在评论中提到的,我使用的是unicode,所以这不是问题。管理面板解释它的方式是问题。这与ans一起工作wer@Wannabe Coder.谢谢!这与答案@Wannabe Coder.一起工作。谢谢!