Django:模型领域中的用户列表

时间:2018-06-03 16:29:07

标签: django

我有一个User模型和PromoCode模型。在后者中,我想列出已经输入和匹配我在管理视图中放置的一个promocodes的用户。

我应该在PromoCode模型中使用哪种字段类型来创建用户列表,我可以在视图中添加更多用户?

2 个答案:

答案 0 :(得分:1)

你想要一个ManyToManyField

在模型中:

class PromoCode(models.Model):
    # Assuming you have other fields here, followed by:
    users = models.ManyToManyField(User, related_name="promocodes")

然后在视图中,您可以执行以下操作:

if promocode:
    pc = PromoCode.objects.get(code=promocode) # Get the PromoCode object
    pc.users.add(user) # Add the M2M relationship

...或(因为你使用了related_name)你可以反过来做到这一点:

if promocode:
    pc = PromoCode.objects.get(code=promocode) # Get the PromoCode object
    user.promocodes.add(pc) # Add the M2M relationship

答案 1 :(得分:0)

您有很多PromoCodeUser,因此您需要ManyToManyField