Django模型对象

时间:2014-12-17 03:48:59

标签: python django django-models

我的模型如下:

class Article (models.Model):
    title = models.CharField(max_length=200)
    body = models.CharField(max_length=200)

当我这样做时

Article.objects.values_list('body',flat=True).distinct()

我得到了

  

[u'blah']

当我做Article.objects.values_list('title',flat=True).distinct()

我得到了

  

[u'test 1', u'test 2', u'test 3']

我的问题是,为什么在所有输出面前都有'u'?有没有办法在没有你的情况下得到它?基本上我想要做的是获取我的数据库的每列的唯一值。也许有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

在Python中,Unicode string literals are prepended with u or U

  

在Python源代码中,Unicode文字被编写为前缀为“u”或“U”字符的字符串:u'abcdefghijk'。可以使用\u转义序列写入特定的代码点,然后是四个十六进制数字,给出代码点。 \U转义序列类似,但需要8位十六进制数字,而不是4位数。

所以你看到的只是表明你的值是Unicode字符串,而不是常规字符串。如果您使用其中一个值,通常不会看到u,例如

>>> print u'My String'
My String