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

我正在使用 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"


临摹微笑
浏览 181回答 2
2回答

德玛西亚99

你可以简单地做: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python