为了账号安全,请及时绑定邮箱和手机立即绑定

Django 2 将多个用户引用到一个模型中

Django 2 将多个用户引用到一个模型中

临摹微笑 2021-10-26 17:00:24
我正在使用 Python(3.7) 和 Django(2) 开发一个项目,其中我有多个使用该User模型的模型。我有一个演出模型,一个用户可以创建一个演出,另一个用户用户可以购买这个演出,所以我想建立一个模型来存储购买信息,我想在其中包含Gig Model和user谁创建了Gig作为seller和在user谁是购买者的演出作为buyer模型。我怎样才能创建这样的模型?这是我的Gig模型:class Gig(models.Model):    CATEGORY_CHOICES = (        ('GD', 'Graphic & Design'),        ('DM', 'Digital Marketing'),        ('WT', 'Writing & Translation'),        ('VA', 'Video & Animation'),        ('MA', 'Music & Audio'),        ('PT', 'Programming & Tech'),        ('FL', 'Fun & Lifestyle'),    )    title = models.CharField(max_length=500)    category = models.CharField(max_length=255, choices=CATEGORY_CHOICES)    description = models.CharField(max_length=1000)    price = models.IntegerField(blank=False)    photo = models.FileField(upload_to='gigs')    status = models.BooleanField(default=True)    user = models.ForeignKey(User, on_delete=models.CASCADE)    created_at = models.DateTimeField(default=timezone.now)    def __str__(self):        return self.title在这里,我想要实现的目标是:class Order(models.Model):    gig = models.ForeignKey(Gig, on_delete=models.CASCADE)    seller = "I want to add the gig creator here"    buyer = "I want to add thee gig buyer here"
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

你可以简单地做:


class Order(models.Model):

    gig = models.ForeignKey(Gig, on_delete=models.CASCADE)

    seller = models.ForeignKey(User, on_delete=models.CASCADE, related_name='sold_orders')

    buyer = models.ForeignKey(User, on_delete=models.CASCADE, related_name='bought_orders')

PS 请注意,最好在 ForeightKey 字段上使用字符串模型表示,以避免可能的循环导入问题。喜欢:


gig = models.ForeignKey('Gig', on_delete=models.CASCADE)


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信