PyCharm在代码样式,约定和逻辑陷阱上提供了一些有用的警告.如果我尝试提交带有警告(或错误)的代码,它也会提供通知.
有时我会有意识地忽略特定代码行的这些警告(出于各种原因,通常要考虑第三方库的实现细节).我想要压制警告,但只是为了那条线(如果警告出现在我不是故意的另一条线上,我想知道它!)
我怎么能在PyCharm中做到这一点?(遵循通用Python约定非常可取.)
我创建了一个空迁移,现在看起来像这样:
def forwards(apps, schema_editor):
Foo = apps.get_model('app', 'Foo')
FixedResponse.objects.create(name='Bar')
def backwards(apps, schema_editor):
Foo = apps.get_model('app', 'Foo')
Foo.objects.filter(name='Bar').delete()
class Migration(migrations.Migration):
dependencies = [
('app', '0035_fixedresponse'),
]
operations = [
migrations.RunPython(forwards, backwards)
]
Run Code Online (Sandbox Code Playgroud)
由于没有关于此主题(特定于迁移)或最佳实践的 Django 文档,
我想知道如何输入提示上面的代码?
我有一堆 Django 模板包含标签,它们将数据库对象的特定实例或 string/int 作为参数,它被解释为该数据库对象的主键。例如...
{% render_product product=obj %}
{% render_product product=42 %}
{% render_product product="42" %}
Run Code Online (Sandbox Code Playgroud)
...一切都工作正常并且做了显而易见的事情:它们使用特定的 Product 实例渲染模板片段,如果需要的话,通过主键从数据库中获取它。这是 Product 和类似类的定义方式:
class Product(models.Model):
# standard django model definition goes here
Run Code Online (Sandbox Code Playgroud)
以下是此类包含标签中通常会发生的情况:
@register.inclusion_tag("render_product.html")
def render_product(product: Union[Product, str, int] = None) -> dict:
_product = None
if isinstance(product, Product):
_product = product
elif isinstance(product, str) or isinstance(product, int):
try:
_product = Product.objects.get(pk=product)
except (Product.DoesNotExist, ValueError):
pass
return {"product": _product}
Run Code Online (Sandbox Code Playgroud)
由于我在数十个包含标签中出现了相同的模式,因此我尝试将其重构,以便得到类似的内容:
@register.inclusion_tag("render_product.html")
def render_product(product: Union[Product, str, int] = None) -> dict:
_product …Run Code Online (Sandbox Code Playgroud)