Skip to content Skip to sidebar Skip to footer

Way To Allow For Duplicate Many-to-many Entries In Python/Django

I have the following Django model: class Icon(models.Model): name = models.CharField(max_length=200,null=False,blank=False) class Post(models.Model): icons = models.ManyTo

Solution 1:

Define the model yourself, to have such non-unique many-to-many relations

class PostIcon(models.Model):
    post = models.ForeignKey(Post)
    icon = models.ForeignKey(Icon)

and than add them one by one

for icon in icons:
    PostIcon(post=post, icon=icon).save()

or pass that model as through argument of ManyToManyField e.g.

class Post(models.Model):
    icons = models.ManyToManyField(Icon, through=PostIcon)

or alternatively you can have a count associated with PostIcon instead of having multiple rows, if that serves the use-case e.g. you may want a badge to be displayed 10 times

class PostIcon(models.Model):
    post = models.ForeignKey(Post)
    icon = models.ForeignKey(Icon)
    count =  models.IntegerField()

Post a Comment for "Way To Allow For Duplicate Many-to-many Entries In Python/Django"