从Django的数据库中获取值的正确方法是什么?

2024-06-14 10:45:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我来自PHP/SQL背景,因此django中的整个数据访问技术对我来说是一个挑战。到目前为止,在djangobook中,它教会了我如何在中使用unicode函数型号.py如果我想从数据库中得到一个值。你知道吗

 def __unicode__(self):
    return self.name

当然这不是它的本意吗?首先,它只返回一列,而且如果我想从其他函数访问表以达到其他目的,“name”列是唯一可以返回的吗?似乎我只能从表中返回一列—在本例中,我选择了“name”。 目前我正在做:

Publisher.objects.filter(name='test')

但是这里没有办法改变我想要返回的内容,它总是返回到静态unicode函数型号.py必须手动更改吗? 当然有一种方法可以运行python版本的查询

"SELECT name, firstname FROM users WHERE user_id = 1"

所以基本上,我如何用python编写这个查询而不必使用愚蠢的、有限的unicode函数呢?生产web应用程序如何做到这一点?我是不是完全忽略了这个概念?你知道吗

谢谢,很抱歉这个问题解释得不好。你知道吗

另外,在django中使用SQL会更好吗?还是这种做法不好?你知道吗


Tags: 数据django函数namepyself数据库sql
1条回答
网友
1楼 · 发布于 2024-06-14 10:45:15

只需使用属性访问即可访问字段:

publisher = Publisher.objects.get(name='test')
print publisher.pk
print publisher.name
print publisher.some_other_field

或者,关于你的例子

user = User.objects.get(pk=1)
print user.first_name
print user.last_name

在模板中:

{{ user.first_name }}

__unicode__方法用于显示对象的表示。它不用于通用字段访问。你知道吗


关于你的问题,不,你不应该在这里使用SQL。你知道吗

相关问题 更多 >