Integrate a python function in a django-cms project

21 views
Skip to first unread message

Carlos García

unread,
Oct 24, 2016, 6:47:07 AM10/24/16
to django CMS developers
Hi,

How can I integrate a python function in a django-cms project?

czpython

unread,
Oct 24, 2016, 7:13:06 AM10/24/16
to django CMS developers
Hello Carlos,

I'm not sure I understand your question.
What are you trying to do?

Carlos García

unread,
Oct 24, 2016, 7:30:47 AM10/24/16
to django CMS developers
I have a function recives data form a API:

from django.template import Template, Context
from django.http import HttpResponse
import requests, json

def get_datos(requests):
datos = {
"Credentials": {
'UserName': '********',
'Languaje': 'es',
'Password': '********' 
},
'GetAvailAndRatesRQ': {
'NotGetCancellationInfoCollection': False,
'GetMultiGroupRates': True,
'RQRec':[{
'HotelCode': 'ROL01',
'RQID': 1,
'RoomRQ': [{
'PaxAgeList':[30,
30,],
'CH': 0,
'RQID': 1,
'AD': 2,
'RoomCode': 'FAM',
'CU': 0,
'NoRooms': 1,
'BoardCode': 'TI'
}]
}],
'NotGetChargeInfoCollection': False,
'PromotionCodeList': [],
'GetPromotionsCollection': True,
'DateTo': '2016-11-5',
'IncludedPromotionsInOnlyBar': False,
'DateFrom': '2016-10-30',
'GetHotelRS': False,
'Languaje': 'es',
'GetHotelDetails': False,
'GetHotelsWithoutAllotment': True,
'OnlyBar': False,
'NotGetDailyPriceCollection': True,
'ExactRoomMatch': False,
'GroupRateList': [],
'CustomerCode': 'WEB',
'Criteria': []
}
}

datos = json.dumps(datos, ensure_ascii=False)

cabeceras = {
'Content-Type': 'application/json',
'action': 'getavailandrates',
'format': 'json',
'Accept-Encoding': 'gzip'
}
response = requests.post(url, data=datos, headers=cabeceras)

if response.status_code == 200:
results = response.json()
else:
resutls = 'Error code %s' % response.status_code

return results


I want to show this resuts in my main template.

Thomas Rega

unread,
Oct 24, 2016, 8:29:16 AM10/24/16
to django-cms...@googlegroups.com
Hi,

if you use a custom plugin, wich could be inserted into a page, you
could call your method within the render method of your custom plugin
and extend the context with your data. You will have it then available
in the template

http://docs.django-cms.org/en/release-3.3.x/how_to/custom_plugins.html#storing-configuration

Small example:

class FooPlugin(CMSPluginBase):
allow_children = False
cache = False
model = FooModel
module = 'Foo Bar'
name = 'Example of Custom Plugin'
render_template = "foo/bar.html"

def render(self, context, instance, placeholder):
request = context['request']
context.update({
'instance': instance,
'your_data': get_datos(request)
})

return context


Hope that helps - good luck
> --
> Message URL:
> https://groups.google.com/d/msg/django-cms-developers/topic-id/message-id
> Unsubscribe: send a message to
> django-cms-devel...@googlegroups.com
> ---
> You received this message because you are subscribed to the Google Groups
> "django CMS developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-cms-devel...@googlegroups.com.
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/django-cms-developers/02da3916-dc7c-4722-804a-6add7ae04a82%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

Carlos García

unread,
Oct 24, 2016, 11:12:27 AM10/24/16
to django CMS developers
Thank you so much!!
> ---
> You received this message because you are subscribed to the Google Groups
> "django CMS developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
Reply all
Reply to author
Forward
0 new messages