我正在创建一个关于某些专业人士提供的服务的网站。每位专业人士都会创建自己的个人页面,并列出他提供的服务以及价格。
但是,他有一些有限的服务类型可供选择。专业人士无法创建新的服务类型 - 这是管理员的特权。专业人员列出的每项服务必须具有某种预先确定的类型,而且他不能拥有相同类型的服务。
到目前为止,这就是我在models.py中所拥有的:
# Created and edited only by site administration
class Service(models.Model):
url_name = models.CharField(max_length=100, primary_key=True) # to use in URLs
name = models.CharField(max_length=200)
description = models.TextField()
def __unicode__(self):
return self.name
class Master(models.Model):
name = models.CharField(max_length=200)
description = models.TextField()
def __unicode__(self):
return self.name
class MasterService(models.Model):
master = models.ForeignKey(Master)
service = models.ForeignKey(Service)
price = models.PositiveIntegerField(blank=True)
如何编辑该模型,使django“知道”每个主服务器只能拥有某种服务类型的1项服务?
答案 0 :(得分:1)
尝试unique_together
。
class MasterService(models.Model):
master = models.ForeignKey(Master)
service = models.ForeignKey(Service)
price = models.PositiveIntegerField(blank=True)
class Meta:
unique_together = ('master', 'service')
此约束将在数据库级别强制执行,因此无法将service
与master
多次关联。请参阅docs。