diff options
Diffstat (limited to '')
| -rw-r--r-- | pydis_site/apps/api/migrations/0058_create_new_filterlist_model.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/filter_list.py | 11 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/pydis_site/apps/api/migrations/0058_create_new_filterlist_model.py b/pydis_site/apps/api/migrations/0058_create_new_filterlist_model.py index fffb8159..aecfdad7 100644 --- a/pydis_site/apps/api/migrations/0058_create_new_filterlist_model.py +++ b/pydis_site/apps/api/migrations/0058_create_new_filterlist_model.py @@ -25,5 +25,9 @@ class Migration(migrations.Migration):                  ('comment', models.TextField(help_text="Optional comment on this entry.", null=True)),              ],              bases=(pydis_site.apps.api.models.mixins.ModelReprMixin, models.Model), +        ), +        migrations.AddConstraint( +            model_name='filterlist', +            constraint=models.UniqueConstraint(fields=('content', 'type'), name='unique_filter_list')          )      ] diff --git a/pydis_site/apps/api/models/bot/filter_list.py b/pydis_site/apps/api/models/bot/filter_list.py index 5961aed7..d279e137 100644 --- a/pydis_site/apps/api/models/bot/filter_list.py +++ b/pydis_site/apps/api/models/bot/filter_list.py @@ -28,3 +28,14 @@ class FilterList(ModelTimestampMixin, ModelReprMixin, models.Model):          help_text="Optional comment on this entry.",          null=True      ) + +    class Meta: +        """Metaconfig for this model.""" + +        # This constraint ensures only one filterlist with the +        # same content can exist. This means that we cannot have both an allow +        # and a deny for the same item, and we cannot have duplicates of the +        # same item. +        constraints = [ +            models.UniqueConstraint(fields=['content', 'type'], name='unique_filter_list'), +        ] | 
