假设Ansible结构:
.
??? group_vars
? ??? all
??? site.yml
Run Code Online (Sandbox Code Playgroud)
其中all
包括my_test_variable: yes
,和site.yml
是:
- hosts: all
tasks:
- name: Variable test
debug: msg={{ my_test_variable }}
Run Code Online (Sandbox Code Playgroud)
我正在使用Vagrant在本地运行它,所以命令看起来像:
$ ansible-playbook site.yml -i /path-to-vagrant/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory --private-key=/path-to-vagrant/.vagrant/machines/default/virtualbox/private_key -u vagrant
Vagrant生成的反转文件:
# Generated by Vagrant
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
Run Code Online (Sandbox Code Playgroud)
并输出:
PLAY: ***************************************************************************
TASK [setup] ********************************************************************
ok: [default]
TASK [Variable test] ************************************************************
fatal: [default]: FAILED! => {"msg": "ERROR! the field 'args' has an invalid value, which appears to include a variable that is undefined. …
Run Code Online (Sandbox Code Playgroud) 我正在解析地址并需要在分开的匹配中获取地址和国家/地区,但这些国家/地区可能有别名,例如:
UK == United Kingdom,
US == USA == United States,
Korea == South Korea,
Run Code Online (Sandbox Code Playgroud)
等等...
所以,我所做的是创建一个大的正则表达式,其中所有可能的国家名称(至少是更可能出现的国家名称)由OR运算符分隔,如下所示:
germany|us|france|chile
Run Code Online (Sandbox Code Playgroud)
但问题在于多字国家名称及其较短版本,例如:
Republic of Moldova
和 Moldova
以此为例,我们有字符串:
'Somewhere in Moldova, bla bla, 12313, Republic of Moldova'
Run Code Online (Sandbox Code Playgroud)
我想从中得到什么:
'Somewhere in Moldova, bla bla, more bla, 12313'
'Republic of Moldova'
Run Code Online (Sandbox Code Playgroud)
但这就是我得到的:
'Somewhere in Moldova, bla bla, 12313, Republic of'
'Moldova'
Run Code Online (Sandbox Code Playgroud)
由于有几种情况,这是我到目前为止使用的:
^(.*),? \(?(republic of moldova|moldova)\)?(.*[\d\-]+.*|,.*[:/].*)?$
Run Code Online (Sandbox Code Playgroud)
因为我们可能有国家名称后的传真,电话,邮政编码或其他东西 - 我不关心 - 我使用最后一个匹配组删除它们:
(.*[\d\-]+.*|,.*[:/].*)?
Run Code Online (Sandbox Code Playgroud)
此外,有时国家名称括在括号中,所以我\(?
和\)?
第二个匹配组一起,并且所有国家都在其中:
(republic of moldova|moldova|...)
Run Code Online (Sandbox Code Playgroud)
问题是,当有一个条目是较大的条目的子集时,较短的条目选择较长的条目,其余的条目保留在base_address字符串中.有没有办法告诉正则表达式选择两个值马赫时最大可能的匹配? …
我设计一个新的Django应用程序,并且由于几种可能性,我不知道这将是最好的,所以我想的意见,并希望提高我走到这一步.
这个问题很接近,但并不完全.这个涉及平坦/嵌套的主题是有帮助的,但仍然没有回答问题.关于同一主题还有很多其他人,但没有人告诉我我想知道什么.
模型具有一些共享属性的独特属性,我需要在另一个模型中引用它们,最好使用单个入口点,而不是为每个可能的模型都有一个字段.
我希望能够执行涉及Base类的复杂Django ORM查询,并在需要时按SubClass进行过滤.例如Event.objects.all()
,返回所有事件.我知道Django模型utils继承管理器,并打算尽可能使用它.
此外,我将使用django admin来创建和管理对象,因此必须轻松集成.我希望能够直接创建一个新的SubEvent,而无需先创建一个Event实例.
为了说明,假设我有以下适用于app的模型A
.
class Event(models.Model):
commom_field = models.BooleanField()
class Meta:
abstract = True
class SubEventA(Event):
email = models.EmailField(unique=True)
class SubEventB(Event):
title = models.TextField()
class SubEventC(Event):
number = models.IntegerField(default=10)
# and so on
Run Code Online (Sandbox Code Playgroud)
还有一个应用程序B
,我希望能够引用任何类型的事件,例如:
class OtherModel(models.Model):
event = models.ForeignKey('A.Event')
# This won't work, because `A.Event` is abstract.
Run Code Online (Sandbox Code Playgroud)
# B.models.py
class OtherModel(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
event = …
Run Code Online (Sandbox Code Playgroud)