Add validator to part name

- Check for 'illegal' characters
- Mostly just as a test for validators!
This commit is contained in:
Oliver Walters 2019-05-10 22:52:06 +10:00
parent 68b273aae1
commit 8ac180a9e3
3 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,15 @@
"""
Custom field validators for InvenTree
"""
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
def validate_part_name(value):
# Prevent some illegal characters in part names
for c in ['/', '\\', '|', '#', '$']:
if c in str(value):
raise ValidationError(
_('Invalid character in part name')
)

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2 on 2019-05-10 12:20
import InvenTree.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('part', '0020_auto_20190510_2022'),
]
operations = [
migrations.AlterField(
model_name='part',
name='name',
field=models.CharField(help_text='Part name', max_length=100, validators=[InvenTree.validators.validate_part_name]),
),
]

View File

@ -25,6 +25,7 @@ from django.db.models.signals import pre_delete
from django.dispatch import receiver
from InvenTree import helpers
from InvenTree import validators
from InvenTree.models import InvenTreeTree
from company.models import Company
@ -172,7 +173,9 @@ class Part(models.Model):
else:
return static('/img/blank_image.png')
name = models.CharField(max_length=100, blank=False, help_text='Part name')
name = models.CharField(max_length=100, blank=False, help_text='Part name',
validators=[validators.validate_part_name]
)
variant = models.CharField(max_length=32, blank=True, help_text='Part variant or revision code')