这里是Django/Python新手。你知道吗
让我们使用本页django书中的示例表:http://www.djangobook.com/en/2.0/chapter10/
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
下面是用于访问Author表的filter语句示例:
a = Author.objects.get(first_name='Adrian', last_name='Holovaty')
如果我在不同的变量中没有名字和姓氏呢?如果我把整个名字都写在一起呢?我想这样做:
aName = 'Adrian Holovaty'
a = Author.objects.get(Author.self=aName)
我想以某种方式访问对象表示“属性”。当然,我可以在空间上拆分一个名称,并按照上面的方式进行查找。但如果不太清楚如何分割整个名字呢?假设我想把“纽约尼克斯”或“瑞普范温克尔”之类的东西分开?在第一个例子中,第一个名字是“New York”,而在第二个例子中,它只是“Rip”。你知道吗
不能这样做的原因是
__unicode__
在Python中使用queryset的SQL选择的数据进行计算。你知道吗因此,数据库无法预测Python方法
__unicode__
生成的值。你知道吗也就是说,有很多方法:
如果依赖于django-haystack进行搜索,那么可以将
{{ object }}
作为object.__unicode__
的结果放入模型类的模板中。然后,可以通过__unicode__
输出启用搜索。在模型中添加一个缓存的unicode字符域,使用pre_save signal receiver(覆盖save() method)来更新self.u unicode,则可以筛选(缓存的\u unicode='Foo Bar')
使用SQL CONTACT(作者姓名, ' ', 作者姓氏)='Foo Bar'带Author.objects.raw()或带author_queryset.extra()
只需向类中添加一个
getbyname
方法,该方法拆分名称并生成查询。工作完成了。你知道吗相关问题 更多 >
编程相关推荐