从多对多关系的查询

编程入门 行业动态 更新时间:2024-10-23 15:19:23
本文介绍了从多对多关系的查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我正在Django创建一个小日历应用程序。我有两个模型类;日历和事件。事件可以在多个日历中。因为这样我使用了一个ManyToMany关系。

这是我的模型

from django.db import models class Calendar(models.Model): title = models.CharField(max_length = 255) def __unicode__ (self): return self.title class Event(models.Model): title = models.CharField(max_length = 255) start_date = models。 DateField() end_date = models.DateField(blank = True,null = True) location = models.CharField(blank = True,max_length = 255) description = models.TextField = True) important = models.BooleanField(default = False) calendar = models.ManyToManyField(Calendar)

如何从特定日历中获取所有事件的查询器?

解决方案

日历记录实例上的.event_set属性。像这样:

#创建两个日历 one = models.Calendar.objects.create(title ='calendar one ') two = models.Calendar.objects.create(title ='calendar two') #将事件1连接到两个日历 event = models.Event.objects。 create(title ='event 1',start_date ='2011-11-11') one.event_set.add(event) two.event_set.add(event) #attach event 2 to calendar 2 two.event_set.add(models.Event.objects.create(title ='event 2',start_date ='2011-11-11')) #获取并打印日历中的所有事件 events_one = models.Calendar.objects.get(title ='calendar one')。event_set.all() print [event.title for event in event_one] #将打印:[u'event 1'] #从日历2获取并打印所有事件 events_two = models.Calendar.objects.get(title = 'calendar two')。event_set.all() print [event.title for event in events_two] #将打印:[u'event 1' ,u'event 2']

models.Calendar.objects.get(title ='two') .event_set.all()

I'm creating a little calendar app in Django. I have two model classes; Calendar and Event. An event can be in multiple calendars. Because of this I'm using a ManyToMany relation.

This is my model

from django.db import models class Calendar(models.Model): title = models.CharField(max_length = 255) def __unicode__(self): return self.title class Event(models.Model): title = models.CharField(max_length = 255) start_date = models.DateField() end_date = models.DateField(blank = True, null = True) location = models.CharField(blank = True, max_length = 255) description = models.TextField(blank = True) important = models.BooleanField(default = False) calendar = models.ManyToManyField(Calendar)

How can I get a queryset with all events from a specific calendar?

解决方案

You would use the .event_set attribute on an instance of a Calendar record. Like this:

# create two calendars one = models.Calendar.objects.create(title='calendar one') two = models.Calendar.objects.create(title='calendar two') # attach event 1 to both calendars event = models.Event.objects.create(title='event 1', start_date='2011-11-11') one.event_set.add(event) two.event_set.add(event) # attach event 2 to calendar 2 two.event_set.add(models.Event.objects.create(title='event 2', start_date='2011-11-11')) # get and print all events from calendar one events_one = models.Calendar.objects.get(title='calendar one').event_set.all() print [ event.title for event in events_one ] # will print: [u'event 1'] # get and print all events from calendar two events_two = models.Calendar.objects.get(title='calendar two').event_set.all() print [ event.title for event in events_two ] # will print: [u'event 1', u'event 2']

models.Calendar.objects.get(title='two').event_set.all()

更多推荐

从多对多关系的查询

本文发布于:2023-10-25 08:53:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1526491.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:关系

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!