首页 > 解决方案 > 如何确保一个事件可以有零个或多个会话?

问题描述

我有两个模型,我必须在这两个模型之间创建一个条件。条件可以是事件的 0 个或多个会话,如下所示。我怎样才能做到这一点。

class Session(models.Model):
    name=models.CharField(max_length=100)
    start_date=models.DateField()
    end_date=models.DateField()
    speaker=models.CharField(max_length=100)
    slug = models.SlugField(unique=True, editable=False, max_length=100)

class Event(models.Model):
    name = models.CharField(max_length=100)
    start_date = models.DateField()
    end_date = models.DateField()
    session=models.ForeignKey(Session,on_delete=models.CASCADE)
    slug = models.SlugField(unique=True, editable=False, max_length=100)

标签: djangodjango-modelsdjango-rest-framework

解决方案


目前您的模型Event仅限于一个Session,但后者可以有多个前一个模型。

ForeignKey您可以通过on Sessionto达到您想要的条件Event,例如:

class Session(models.Model):
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    ...

所以如果一个Event存在,它可以没有Sessions,一个或多个。

您可以使用my_event.session_set.all().


推荐阅读