2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-12 10:05:39 +00:00

db unique_together

This commit is contained in:
Oliver Walters
2017-04-16 01:24:00 +10:00
parent 4f6802b9bf
commit d0a66390f5
4 changed files with 12 additions and 48 deletions

View File

@ -96,7 +96,7 @@ class PartParameterTemplate(models.Model):
ready to be copied for use with a given Part.
A PartParameterTemplate can be optionally associated with a PartCategory
"""
name = models.CharField(max_length=20)
name = models.CharField(max_length=20, unique=True)
units = models.CharField(max_length=10, blank=True)
# Parameter format
@ -138,32 +138,13 @@ class CategoryParameterLink(models.Model):
class Meta:
verbose_name = "Category Parameter"
verbose_name_plural = "Category Parameters"
class PartParameterManager(models.Manager):
""" Manager for handling PartParameter objects
"""
def create(self, *args, **kwargs):
""" Prevent creation of duplicate PartParameter
"""
part_id = kwargs['part']
template_id = kwargs['template']
params = self.filter(part=part_id, template=template_id)
if len(params) > 0:
return params[0]
return super(PartParameterManager, self).create(*args, **kwargs)
unique_together = ('category', 'template')
class PartParameter(models.Model):
""" PartParameter is associated with a single part
"""
objects = PartParameterManager()
part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='parameters')
template = models.ForeignKey(PartParameterTemplate)