在Django为这种情况创建模型的最佳方法是什么?

2024-05-28 18:19:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个关于某些专业人士提供的服务的网站。每个专业人士创建自己的个人页面,列出他提供的服务以及价格

但是,他可以选择的服务类型有限。专业人士不能创建新的服务类型-这是管理员的特权。专业人士列出的每项服务都必须是某种预先确定的类型,而他不必提供相同类型的服务

到目前为止,这就是我在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“知道”每个主机只能有一个特定服务类型的服务


Tags: nameselftrue类型modelmodelsservicedescription
1条回答
网友
1楼 · 发布于 2024-05-28 18:19:16

试试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')

此约束将在数据库级别强制执行,因此不可能多次将servicemaster关联。见docs

相关问题 更多 >

    热门问题