#Queries
espanol_3d_gtmax = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", tipo_3d=1, gtmax=1, xd=None, vip=None)
espanol_3d = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", tipo_3d=1, gtmax=None, xd=None, vip=None)
espanol_3d_vip = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", tipo_3d=1, vip=1, gtmax=None, xd=None)
espanol_3d_xd = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", tipo_3d=1, xd=1, gtmax=None, vip=None)
espanol_gtmax = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", gtmax=1, tipo_3d=None, vip=None, xd=None)
espanol = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", gtmax=None, tipo_3d=None, vip=None, xd=None)
espanol_vip = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", vip=1, gtmax=None, tipo_3d=None, xd=None)
espanol_xd = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Espanol", xd=1, vip=None, gtmax=None, tipo_3d=None)
subtitulada_3d_gtmax = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", tipo_3d=1, gtmax=1, xd=None, vip=None)
subtitulada_3d = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", tipo_3d=1, gtmax=None, xd=None, vip=None)
subtitulada_3d_vip = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", tipo_3d=1, vip=1, gtmax=None, xd=None)
subtitulada_3d_xd = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", tipo_3d=1, xd=1, vip=None, gtmax=None)
subtitulada_gtmax = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", gtmax=1, tipo_3d=None, xd=None, vip=None)
subtitulada = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", gtmax=None, tipo_3d=None, vip=None, xd=None)
subtitulada_vip = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", vip=1, gtmax=None, tipo_3d=None, xd=None)
subtitulada_xd = Funcion.objects.filter(fecha_inicio__lte=today, fecha_fin__gte=today, idpelicula__slug=slugpelicula, idciudad=city, visible=1, idioma="Subtitulada", xd=1, vip=None, gtmax=None, tipo_3d=None)
#Creating a dictionary of all types of funciones querysets
func_tags = ['espanol', 'subtitulada', 'espanol_3d', 'subtitulada_3d', 'espanol_3d_gtmax', 'espanol_vip', 'espanol_xd', 'subtitulada_3d_gtmax', 'subtitulada_3d_vip',
'espanol_3d_vip', 'espanol_3d_xd', 'espanol_gtmax', 'subtitulada_3d_xd', 'subtitulada_gtmax', 'subtitulada_vip', 'subtitulada_xd']
func_all = [espanol, subtitulada, espanol_3d, subtitulada_3d, espanol_3d_gtmax, espanol_vip, espanol_xd, subtitulada_3d_gtmax, subtitulada_3d_vip, espanol_3d_vip, espanol_3d_xd,
espanol_gtmax, subtitulada_3d_xd, subtitulada_gtmax, subtitulada_vip, subtitulada_xd]
funciones = dict(zip(func_tags, func_all))
#Removing empty element from funciones dictionary
for x in list(funciones.keys()):
if not (funciones[x]).exists():
del funciones[x]
cine_tags = []
for key, value in funciones.iteritems():
for item in value:
cine_tags.append(item.idcine.nombre)
cine_tags_unique = list(set(cine_tags))
horarios = {}
for cine in cine_tags_unique:
horarios[cine] = []
#Appending func_tags and funciones to the horarios dictionary organized by cine
for key, value in funciones.iteritems():
for item in value:
for in_key, value in horarios.iteritems():
if in_key == item.idcine.nombre:
horarios[in_key].append((key, item))
aditional的信息:開關數據結構以字典
Funcion:代表從電影在電影放映時間theather一個Django查詢集。
類型的funciones選項:
['espanol', 'subtitulada', 'espanol_3d', 'subtitulada_3d', 'espanol_3d_gtmax', 'espanol_vip', 'espanol_xd', 'subtitulada_3d_gtmax', 'subtitulada_3d_vip','espanol_3d_vip', 'espanol_3d_xd', 'espanol_gtmax', 'subtitulada_3d_xd', 'subtitulada_gtmax', 'subtitulada_vip', 'subtitulada_xd']
電影院選項:
[u'Cinemark Plaza de las Americas', u'Cineplex', u'Multicines CCI', u'Supercines Quicentro Sur', u'Supercines San Luis', u'Multicines Recreo', u'Multicines Scala', u'Mis Cines', u'Multicines Condado']
現在我有一個元組的字典結構是這樣的:
'Movie theather': [(type_of_funcion, funcion_object), (type_of_funcion, funcion_object)], 'Another Movie Theater': [(type_of_funcion, funcion_object)],...
與樣本數據字典,我現在看起來像這樣:
{u'Cinemark Plaza de las Americas': [('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #540: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #541: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #542: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #548: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #549: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #550: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Cinemark Plaza de las Americas, Funcion #530: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Cinemark Plaza de las Americas, Funcion #531: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Cinemark Plaza de las Americas, Funcion #532: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Cinemark Plaza de las Americas, Funcion #533: The Hobbit: An Unexpected Journey>), ('subtitulada', <Funcion: Cinemark Plaza de las Americas, Funcion #508: The Hobbit: An Unexpected Journey>), ('subtitulada', <Funcion: Cinemark Plaza de las Americas, Funcion #509: The Hobbit: An Unexpected Journey>), ('subtitulada', <Funcion: Cinemark Plaza de las Americas, Funcion #510: The Hobbit: An Unexpected Journey>), ('subtitulada', <Funcion: Cinemark Plaza de las Americas, Funcion #511: The Hobbit: An Unexpected Journey>)], u'Cineplex': [('subtitulada_3d', <Funcion: Cineplex, Funcion #454: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cineplex, Funcion #455: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cineplex, Funcion #456: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cineplex, Funcion #451: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cineplex, Funcion #452: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cineplex, Funcion #453: The Hobbit: An Unexpected Journey>)], u'Multicines CCI': [('espanol_3d', <Funcion: Multicines CCI, Funcion #158: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Multicines CCI, Funcion #160: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Multicines CCI, Funcion #165: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Multicines CCI, Funcion #166: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Multicines CCI, Funcion #168: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Multicines CCI, Funcion #431: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Multicines CCI, Funcion #434: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Multicines CCI, Funcion #436: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Multicines CCI, Funcion #438: The Hobbit: An Unexpected Journey>), ('espanol', <Funcion: Multicines CCI, Funcion #439: The Hobbit: An Unexpected Journey>)]}
的問題,這是我「重複」類型funciones的是這樣的:
{u'Cinemark Plaza de las Americas': [('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #540: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #541: The Hobbit: An Unexpected Journey>), ('subtitulada_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #542: The Hobbit: An Unexpected Journey>), ('espanol_3d', <Funcion: Cinemark Plaza de las Americas, Funcion #548: The Hobbit: An Unexpected Journey>),
取而代之的是,我想組由屬於電影院類型funciones的,東西像這樣:
{u'Cinemark Plaza de las Americas': { {'subtitulada': Funcion1, Funcion2, Funcion3}, {'subtitulada_3d': Funcion4, Fucion5} }, next_movie_theather: {},...}
有關如何完成此任何想法? 感謝
你更得到一個很好的答案,如果你讓你的例子可重複性。例如,您可以使用玩具數據集。 – Maus
另外請注意,這個問題實際上並不需要提及Django或顯示視圖(如果您在我的答案中提供了一個類似於玩具的數據集)。 –