我正在尝试使用 jinja2 将嵌套字典输出到 yaml 文件。但是我不确定如何访问嵌套的字典。有了数据的平面字典,我可以使用以下内容。
- request:
path: {{ path }}
headers:
origin: 'somedomain.com'
user-agent: 'agent'
referer: 'some.domain.com'
authority: 'somedomain.com'
data:
{% for key, value in data.items() -%}
{{ key }}: '{{ value }}'
{%- endfor %}
response:
content:
file: {{ content }}
Run Code Online (Sandbox Code Playgroud)
但是,对于像下面这样的嵌套字典,我如何在底部实现输出?
{'toplevelkey1': {'nestedkey1': 'value1', 'nestedkey2': 123, 'nestedkey3': '55',
'nestedkey4': 1560}, 'toplevelkey34': 'df',
'toplevelkey2': {'somekey12': 68, 'somekey58': False, 'somekey48': 3, 'somekey38': 'ADF',
'somekey39': 'St'}, 'toplevel34': 'T',
'toplevel8': {'key33': 68, 'key94': 3, 'key83': 'T', 'key84': 'dog'}}
Run Code Online (Sandbox Code Playgroud)
所需的输出
- request: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为django模型表单自定义标签:
class SupplyTypeForm(forms.ModelForm):
class Meta:
model = EUser
fields = ('service_type', 'online_account')
labels = {
'online_account': _('Do you have an online account with any of your suppliers'),
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误:NameError:名称'_'未定义
然而django文档提到这样做,所以我不清楚什么是错的(下划线很奇怪,我不确定为什么在这里使用它).如果我删除它工作,错误消失
文档拥有它的任何理由:https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/#overriding-the-default-fields
我最近设置了gulp但是虽然它似乎(部分)在我的IDE中工作但它似乎不能在命令行中工作.
我的package.json文件是:
{
"name": "project",
"version": "0.1.0",
"dependencies": {},
"devDependencies": {
"browser-sync": "^2.14.0",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.1",
"gulp-concat": "^2.6.0",
"gulp-cssnano": "^2.1.2",
"gulp-imagemin": "^3.0.3",
"gulp-less": "^3.1.0",
"gulp-pixrem": "^1.0.0",
"gulp-plumber": "^1.1.0",
"gulp-rename": "^1.2.2",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.7",
"run-sequence": "^1.2.2"
},
"engines": {
"node": ">=0.8.0"
}
}
Run Code Online (Sandbox Code Playgroud)
这些已安装npm install
(但请注意我没有全局安装gulp(npm通过OSX上的brew安装))
运行which gulp但是我得到咕嘟咕嘟没有发现?
我正在尝试在Django中设置多个允许的主机
我在生产设置production.py中将设置配置为
ALLOWED_HOSTS = env('DJANGO_ALLOWED_HOSTS')
Run Code Online (Sandbox Code Playgroud)
然后我可以在heroku上设置:
heroku config:set 'DJANGO_ALLOWED_HOSTS' = 'www.example.com'
Run Code Online (Sandbox Code Playgroud)
但是,如何通过此方法添加多个主机?
我对表单进行了验证检查,该表单依赖于多个字段,但最好让验证错误向用户显示哪些字段导致问题,而不仅仅是表单顶部的错误消息.(表单有很多字段,因此更清楚地显示错误的位置).
作为一种解决方法,我尝试在每个相关字段clean_field()方法中创建相同的验证,以便用户在这些字段旁边看到错误.但是,我似乎只能访问该特定字段self.cleaned_data而不是其他任何字段?
或者可以从表单clean()方法引发字段错误?
尝试1:
def clean_supply_months(self):
if not self.cleaned_data.get('same_address') and not self.cleaned_data.get('supply_months'):
raise forms.ValidationError('Please specify time at address if less than 3 years.')
def clean_supply_years(self):
if not self.cleaned_data.get('same_address') and not self.cleaned_data.get('supply_years'):
raise forms.ValidationError('Please specify time at address if less than 3 years.')
def clean_same_address(self):
.....
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 django 上的选择字段上设置初始值,但它似乎不起作用,我不确定我可以为选择字段设置初始值的内容(即它应该是 const 值,元组值。 .?)
模型:
class User(models.Model):
DUAL_SUPPLIER = 'D'
SEPERATE_SUPPLIERS = 'G'
SINGLE_SUPPLIER = 'F'
SERVICE_TYPE_CHOICES = ((DUAL_SUPPLIER, 'I have one supplier'),
(SEPERATE_SUPPLIERS, 'I have separate Suppliers'),
(SINGLE_SUPPLIER, 'I have a single supplier only'))
service_type = models.CharField(max_length=10, choices=SERVICE_TYPE_CHOICES)
online_account = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
形式:
class SupplyTypeForm(forms.ModelForm):
class Meta:
model = User
fields = ('service_type', 'online_account')
labels = {
'service_type': 'What type of supplier do you have?',
'online_account': 'Do you have an online account with any of your suppliers',
} …Run Code Online (Sandbox Code Playgroud) 我在 django 管理中使用表格内联,并指定了两个只读字段。然而django现在已经将它们移动到内联的最末尾(最右边)有大量字段,我如何将这2个字段移回其原始位置(pk后的第二个,第三个)而无需指定每个字段的顺序与fields=?
我最近向 heroku 部署了一个(django)应用程序,虽然该应用程序在默认的 heroku 应用程序域上运行良好,但appname.herokuapp.com它在自定义 url 上不起作用,www.appname.com而是给出了 400 bad request 错误。
域 dns 已在 namecheap.com 上配置,但域通过以下方式添加到 heroku:
$ heroku domains:add appname.com,
$ heroku domains:add www.appname.com
Run Code Online (Sandbox Code Playgroud)
诊断错误的最佳方法是什么,因为目前 heroku 上的应用程序似乎没有产生任何错误(即在 opbeat 中没有显示可以很好地捕获早期错误 - 除了自定义域路由之外,一切正常)。
尝试将数据添加到 django 模型中的 many2many 字段时,出现意外错误。我不知道为什么我没有得到相关数据(payment_method)
对于以下型号
class PaymentMethod(models.Model):
MONTHLY_DIRECT_DEBIT = 'MDD'
CASH_OR_CHEQUE = 'CAC'
QUARTERLY_DIRECT_DEBIT = 'QDD'
PAYMENT_CHOICES = (
(MONTHLY_DIRECT_DEBIT, 'Monthly Direct Debit'),
(CASH_OR_CHEQUE, 'Cash or Cheque'),
(QUARTERLY_DIRECT_DEBIT, 'Quarterly Direct Debit'),
)
unique_id = models.CharField(max_length=3, choices=PAYMENT_CHOICES)
name = models.CharField(max_length=255, unique=True)
class Tariff(models.Model):
name = models.CharField(max_length=255)
supplier = models.ForeignKey(Supplier)
payment_method = models.ManyToManyField(PaymentMethod)
region = models.ManyToManyField(Region)
class Meta:
unique_together = ('name', 'supplier')
class Supplier(models.Model):
unique_id = models.IntegerField(unique=True)
name = models.CharField(max_length=255, unique=True)
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过以下方式将付款方式数据添加到关税中:
supplier = Supplier.objects.get(unique_id=region.default_supplier.unique_id)
payment_method_instance = PaymentMethod.objects.get(unique_id=payment_method['id'])
tariff, created = …Run Code Online (Sandbox Code Playgroud) 我正在尝试修改Boostraps custom-selectcss类中使用的箭头.目前它是黑色的,并且更愿意将其更改为灰色,是否有一种简单的方法可以做到这一点?
https://getbootstrap.com/docs/4.0/components/forms/#select-menu
django ×6
python ×4
django-forms ×3
heroku ×3
bootstrap-4 ×1
django-admin ×1
dns ×1
gulp ×1
jinja2 ×1
npm ×1