我正在尝试创建一个规则来强制related_name
在 Django 中定义 ForeignKey 字段及其格式时使用。
通过以下规则强制使用该字段:
- id: python.custom.foreign-key-must-set-related-name
message: ForeignKey relationships must explicitly set the `related_name` property as `<model>_<field>_set`
languages: [python]
severity: ERROR
patterns:
- pattern-inside: |
class $M(...):
...
- pattern-not: $F = django.db.models.ForeignKey(..., related_name=..., ...)
- pattern: $F = django.db.models.ForeignKey(...)
我现在的目标是修改此规则以也能够验证related_name 的格式,因此它是:(<model>_<field>_set
或者,遵循规则中的变量$M_$F_set
:)
我一直在尝试几种组合,到目前为止还没有走运。这可能吗?
编辑:
例如,看下面的模型:
class MyCoolModel(models.Model):
correct_field = models.ForeignKey(to='something', related_name='mycoolmodel_correct_field_set')
incorrect_field = models.ForeignKey(to='something', related_name='something_set')