Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从数据库中获取多个字段_Python_Django - Fatal编程技术网

Python Django从数据库中获取多个字段

Python Django从数据库中获取多个字段,python,django,Python,Django,我是否可以从Django数据库中检索多个字段 在模型中一级有: class Advert(models.Model): cat = models.CharField(max_length=50) advertiser = models.ForeignKey(Advertiser) country = models.CharField(max_length=500) city = models.CharField(max_length

我是否可以从Django数据库中检索多个字段

模型中
一级有:

class Advert(models.Model):
    cat        = models.CharField(max_length=50)
    advertiser = models.ForeignKey(Advertiser)
    country    = models.CharField(max_length=500)
    city       = models.CharField(max_length=500)
    title      = models.CharField(max_length=200)
    body       = models.CharField(max_length=200)
    link       = models.URLField()

def __unicode__(self):
    return self.title
函数
\uuuu unicode\uuuu(self)
将只返回广告的标题

如何获取字段:
(标题、正文、链接)

是的,如下所示,使用
u
将其标记为unicode字符串

您要使用Django函数。从示例中可以看出:

>>> Advert.objects.values_list('title', 'body', 'link')
[(u'Title', u'This is a body text line.', u'http://example.com/'), 
(u'Title 2', u'This is another body text line.', u'http://example.com/foobar')]
任何需要的过滤器和注释都应该放在
值\u列表
调用之前。如果您只希望每条记录有一个字段,并且希望它位于平面列表中,请添加
flat=True

>>> Advert.objects.values_list('link', flat=True)
[u'http://example.com/', u'http://example.com/foobar']

您忽略了一个事实,即ORM正是一个对象关系映射器。当您执行
my_advert=advert.objects.get(无论什么)
时,您将获得一个包含所有字段的advert实例。因此,您可以执行
我的广告标题
我的广告正文
,等等。

\uuuuuuu unicode\uuuu
返回
str
不好。最好返回unicode字符串,例如
返回u'{}-{}-{}'。格式(self.title,self.body,self.link)
从问题:“函数
\uuuunicode\uuuuuuuu(self)
将只返回广告的标题。”不需要重新定义
\uunicode\uuuuu
。他的问题是可以解释的。尽管如此,他在下面给出了很好的答案,并且他开始编码时没有阅读最少的文档:可以使用PAnd
filter
all
来代替
get
来获取对象列表和
值列表
(或
)可以只返回感兴趣的字段,这样数据库就不必返回所有对象的字段并从中构造对象。不幸的是,OP没有说明他们是如何得到有问题的
广告的。。。
>>> Advert.objects.values_list('link', flat=True)
[u'http://example.com/', u'http://example.com/foobar']