在Python中,"i"在.pyi扩展名中表示什么?
在PEP-484中,它提到.pyi是"存根文件",但没有关于扩展的助记符帮助.那么"我"的意思是"包括"吗?"实施"?"接口"?
我正在Django网站(此处提供代码)上运行简单的鼻子测试。根据发出CLI命令的顺序,我会得到截然不同的结果!
查看许多帖子,这似乎与覆盖过程开始于加载过程有关。我不明白的是:
我正在专注于 minerals/views.py
Django settings.py文件包含配置信息:
# Use nose to run all tests
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
# Nose will measure coverage on the folllowing apps
NOSE_ARGS = [
'--with-coverage',
'--cover-package=minerals',
'--cover-html',
]
Run Code Online (Sandbox Code Playgroud)
我使用virtualenv需求文件在具有Python 3.5.1的Ubuntu 14.04LTS上运行:
coverage==4.1
Django==1.9.6
django-debug-toolbar==1.4
django-nose==1.4.3
nose==1.3.7
sqlparse==0.1.19
Run Code Online (Sandbox Code Playgroud)
当我使用运行测试coverage run --source '.' manage.py test minerals,然后minerals/views.py是缺少声明:12-13,18-49。
$ coverage run --source '.' manage.py test minerals
nosetests minerals --with-coverage --cover-package=minerals --cover-html --verbosity=1
Creating test database for alias 'default'... …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚为什么没有为在管理视图上更新的内联表单调用clean_field()方法.我的代码似乎很简单(见下面的概要).
当我通过管理界面(http://admin/..../primary/1/)修改主表单时,如预期的那样,我看到:
但是,当我在Membership(http://admin/..../membership/1/)的Admin视图中将内容修改为内联时,我只看到:
我尝试在以下位置放置"def clean_myfield(self):"方法,但无法看到它从成员内联主要表单执行:
还有其他地方应该放置这个clean_myfield代码吗?
我已经阅读(并重读)了[表格和字段验证] [docs.djangoproject.com/en/dev/ref/forms/validation/#form-and-field-validation]上的Django文档,它提供了很好的报道,但是内联验证没有任何内容.我还阅读了docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin,但对内联特定验证没有帮助.还有其他文件吗?
---> 奥斯丁回答提供了一个文档参考:"如果没有指定"(见他的链接),这意味着答案.我添加了一项改进此主题文档的请求.
经过进一步的实验,我通过在Model.Primary.clean()方法中放入代码找到了一种解决方法:
def clean(self):
data = self.myfield
data += "_extra" # not actual cleaning code
self.myfield = data
Run Code Online (Sandbox Code Playgroud)
所以问题仍然存在:为什么Model.clean()似乎是唯一放置管理内联表单验证而不是clean_myfield(self)方法的地方?
---> 奥斯丁回答.我需要添加form = PrimaryAdminForm到PrimaryInline.通过此添加,在成员资格表单上更新PrimaryInline myfield时,将调用PrimaryAdminForm.clean_myfield(self).由于添加了表单引用,代码排序已更新.
代码简介:
没有forms.py文件 - 所有模型都通过管理界面更新
models.py:
class Membership(models.Model):
name = models.CharField( max_length=NAME_LENGTH,
null=True, blank=True, verbose_name="Membership Name Tag",
help_text="Name of membership" )
class Primary(models.Model):
user = models.OneToOneField(User, verbose_name="User …Run Code Online (Sandbox Code Playgroud) 我正在执行git merge两个分支中的一个,并想包括--log开关,但忘记了。我中止了提交消息编辑器以重试。
现在我处于 MERGE_HEAD 存在的情况,因此我无法重新运行合并,并且系统指示我“请在合并之前提交更改”。
当承诺完成合并时,我找不到创建与我从交换机收到的相同消息的选项merge --log。
问:解决方案是删除.git/MERGE_HEAD然后再次合并,还是有某种组合git commit和git fmt-merge-msg会生成类似日志的消息?
我认为这可能是一个常见问题,但我无法通过 git-smc、Google 或 SO 找到解决方案。
django ×2
python ×2
coverage.py ×1
django-admin ×1
django-forms ×1
django-nose ×1
git ×1
merge ×1
nose ×1