Django模型-特定于业务的链接类型,每个业务只有一个链接类型



我如何修改以下模型,使每个业务只允许每种类型的一个社交媒体链接:

class Business(models.Model):
business = models.CharField(max_length=60)
class SocialLinkType(models.Model):
FB = 'FB'
TWTR = 'TWTR'
PIN = 'PIN'
INST = 'INST'
MEMBERSHIP_CHOICES = (
(FB, 'Facebook'),
(TWTR, 'Twitter'),
(PIN, 'Pinterest'),
(INST, 'Instagram'),
)
business = models.ManyToManyField(Business) 
class SocialLink(models.Model):
link_url = models.TextField()
link_type = models.ForeignKey(SocialLinkType, on_delete=models.CASCADE)
business = models.ForeignKey(Business, on_delete=models.CASCADE)

在socialinktype模型中添加诸如facebook、twitter等名称,。。。。

class SocialLinkType(models.Model):
name = models.CharField(max_length=20)

在socialink模式中,添加unique_together以确保每个企业只有一个facebook链接。。。。

class SocialLink(models.Model):
link_url = models.TextField()
business = models.ForeignKey(Business, on_delete=models.CASCADE)
link_type = models.ForeignKey(SocialLinkType, on_delete=models.CASCADE)
class Meta:
unique_together = ['business', 'link_type']

最新更新