相关疑难解决方法(0)

使用@property与getter和setter

这是一个纯Python特定的设计问题:

class MyClass(object):
    ...
    def get_my_attr(self):
        ...

    def set_my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

class MyClass(object):
    ...        
    @property
    def my_attr(self):
        ...

    @my_attr.setter
    def my_attr(self, value):
        ...
Run Code Online (Sandbox Code Playgroud)

Python让我们可以这样做.如果你要设计一个Python程序,你会使用哪种方法?为什么?

python properties getter-setter

711
推荐指数
13
解决办法
41万
查看次数

按属性过滤

是否可以按模型属性过滤Django查询集?

我的模型中有一个方法:

@property
def myproperty(self):
    [..]
Run Code Online (Sandbox Code Playgroud)

现在我想通过这个属性过滤,如:

MyModel.objects.filter(myproperty=[..])
Run Code Online (Sandbox Code Playgroud)

这有点可能吗?

python django orm

81
推荐指数
5
解决办法
4万
查看次数

基于动态属性的django查询()

我想知道是否有一种方法可以使用动态生成的python属性在查询集上使用Django的filter()property().我有first_namelast_name每个用户,我想根据他们的连接名称进行过滤first_name last_name.(这背后的原因是当我进行自动填充时,我会搜索查询是否与名字,姓氏或部分连接John S匹配John Smith.例如,我想匹配.

我创建了一个属性name:

def _get_name(self):
    return self.first_name + " " + self.last_name
    name = property(_get_name)
Run Code Online (Sandbox Code Playgroud)

这样我就可以调用user.name以获取连接的名称.

但是,如果我尝试这样做,User.objects.filter(name__istartswith=query)我会收到错误Cannot resolve keyword 'name' into field.

关于如何做到这一点的任何想法?我是否必须在数据库中创建另一个字段来存储全名?

python django django-queryset

12
推荐指数
2
解决办法
9618
查看次数

django queryset过滤问题

我有一个模型,我想用搜索词过滤,这通常是一个名称.然而,在我的数据库first_namelast_name是两个不同的领域.

例如

search_term = 'Will Sm'

db_persons 记录: first_name = 'Will', last_name = 'Smith'

搜索词将能够检索此记录.

我怎样才能做到这一点?

db_persons.objects.filter(__?__)

更新:

寻找一种连接字段和查询连接结果而无需原始sql的方法

django django-models

3
推荐指数
1
解决办法
2315
查看次数