Way to allow for duplicate many-to-many entries in Python/Django

你离开我真会死。 提交于 2019-11-29 15:20:51

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()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!