0

我正在尝试创建一个规则来强制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')
4

0 回答 0