我有两个类,Portfolio和PortfolioImage.
class PortfolioImage(models.Model):
portfolio = models.ForeignKey('Portfolio', related_name='images')
...
class Portfolio(models.Model):
def num_images(self):
return self.images.count()
Run Code Online (Sandbox Code Playgroud)
我想为Portfolio编写一个"非空投资组合"经理,这样我就能做到:
queryset = Portfolio.nonempty.all()
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情,但我认为这甚至不是很接近:
class NonEmptyManager(models.Manager):
def get_query_set(self):
return super(NonEmptyManager, self).get_query_set().filter(num_images > 0)
Run Code Online (Sandbox Code Playgroud)
我真的不知道从哪里开始,我发现这方面的文档有点缺乏.
有任何想法吗?谢谢,
我正在使用具有以下格式字符串的 python 日志记录:
'format': '%(asctime)s %(levelname)s %(name)s - %(message)s'
Run Code Online (Sandbox Code Playgroud)
该%(name)s部分打印记录器名称:
2017-10-26 13:17:58,019 信息 device_gps.comm。协议- GPSProtocol(port=COM13) - 启动 GPS 串行通信(端口:COM13) 2017-10-26 13:17:58,022 信息 scs_control。上下文- 启动组件:DeviceGPS 2017-10-26 13:17:58,033 信息 scs_elevation。海拔- 初始化 ElevationModel 引擎实例。
与其他日志记录工具(如log4j)一样,为了简洁起见,我只想打印记录器名称的最后一部分(在上面的示例中以粗体显示)。
这个另一个答案建议更改记录器名称,但这样做会破坏父子记录器关系,这对于为一组记录器配置日志记录非常有用。
我怎样才能让 python 日志打印记录器名称的最后一部分?
我希望解析十进制数字而不管它们的格式如何,这是未知的。原文的语言未知,可能会有所不同。此外,源字符串之前或之后可以包含一些额外的文本,例如货币或单位。
我正在使用以下内容:
# NOTE: Do not use, this algorithm is buggy. See below.
def extractnumber(value):
if (isinstance(value, int)): return value
if (isinstance(value, float)): return value
result = re.sub(r'&#\d+', '', value)
result = re.sub(r'[^0-9\,\.]', '', result)
if (len(result) == 0): return None
numPoints = result.count('.')
numCommas = result.count(',')
result = result.replace(",", ".")
if ((numPoints > 0 and numCommas > 0) or (numPoints == 1) or (numCommas == 1)):
decimalPart = result.split(".")[-1]
integerPart = "".join ( result.split(".")[0:-1] )
else:
integerPart …Run Code Online (Sandbox Code Playgroud)