我是Python和Django的新手,我正在尝试制作我的第一个小型网络应用程序。我有两个模型,在Event中有一对多的外键。这是我到目前为止所拥有的
class Event(models.Model):
name = models.CharField(max_length=255, unique=True)
seats = models.IntegerField()
tickets = ???
class Ticket(models.Model):
seat = models.IntegerField()
eventReference = models.ForeignKey(Event)
我假设我是这样做的。一个活动可以有多张票。我为Ticket创建了一个外键,以便它可以。但是,我想直接从事件模型属性票证访问所有票证。我发现以下关系的一些示例是“向后”,但没有一个可以应用于此。因此,如果我希望Event的ticket-attribute包含与该事件相关的所有票证,那么我应该把它放在那里?像这样的东西?我很困惑。
class Event(models.Model):
name = models.CharField(max_length=255, unique=True)
seats = models.IntegerField()
tickets = Event.objects.get(this??).ticket.entry_all.get()
答案 0 :(得分:0)
如果您想获得活动的所有门票,请执行以下操作:
event = Event.objects.get(id=1)
tickets = event.ticket_set.all()
您不应该为tickets
定义任何特殊内容,因为django的默认模型管理器已经处理过这个问题。
答案 1 :(得分:0)
你的models.py
class Event(models.Model):
name = models.CharField(max_length=255, unique=True)
seats = models.IntegerField()
class Ticket(models.Model):
seat = models.IntegerField()
event = models.ForeignKey(Event)
Views.py
event= Event.objects.get(id=event_id)
event.ticket_set.all()
如果您从模板
获得所有门票event.ticket_set.all
ticket
是Ticket
模型实例
{% for ticket in event.ticket_all %}
...
...
{% endfor%}