Advertisement
matiascelasco

Some Django views samples

Oct 31st, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.98 KB | None | 0 0
  1. @ajax_view
  2. def search_exhibition_tags_ajax(request):
  3.  
  4.     query = get_parameter_or_ajax_error(request.GET, 'query')
  5.  
  6.     return {
  7.         'targets': [{
  8.             'value': tag.pk,
  9.             'text': tag.name
  10.         } for tag in models.Tag.objects.filter(name__icontains=query)]
  11.     }
  12.  
  13.  
  14. def activate_account(request, token):
  15.     user = get_object_or_404(UserWif, confirmation_token=token)
  16.     user.is_active = True
  17.     user.confirmation_token = ''
  18.     user.save()
  19.  
  20.     messages.success(request, _(u"Thanks for joining WhereInFair! "
  21.                                 u"Your profile was activated successfully. "
  22.                                 u"Now you can log in using your email and your password"))
  23.  
  24.     return redirect('home')
  25.  
  26.  
  27. @user_passes_test(lambda u: u.is_staff)
  28. def cms_add_company(request, inline=False):
  29.     form = CompanyForm(request.POST or None, request.FILES or None)
  30.     if request.method == 'POST':
  31.         if form.is_valid():
  32.             form.save()
  33.             return redirect('cms_close_window' if inline else 'cms_companies')
  34.  
  35.     return render(request, 'company/cms_company_form.html', {
  36.         'form': form,
  37.         'form_title': form.create_title,
  38.         'inline': inline,
  39.     })
  40.  
  41.  
  42. @user_passes_test(lambda u: u.is_staff)
  43. def add_exhibition(request):
  44.  
  45.     ExhibitionContactFormSet = inlineformset_factory(models.Exhibition,
  46.                                                      models.ExhibitionContact,
  47.                                                      extra=1,
  48.                                                      can_delete=False)
  49.  
  50.     ExhibitionPhotoFormSet = inlineformset_factory(models.Exhibition,
  51.                                                    models.ExhibitionPhoto,
  52.                                                    fields=["image"],
  53.                                                    extra=1,
  54.                                                    can_delete=False)
  55.  
  56.     ExhibitionVideoFormSet = inlineformset_factory(models.Exhibition,
  57.                                                    models.ExhibitionVideo,
  58.                                                    fields=["title", "youtube_url"],
  59.                                                    extra=1,
  60.                                                    can_delete=False)
  61.  
  62.     ExhibitionPresentationFormSet = inlineformset_factory(models.Exhibition,
  63.                                                           models.ExhibitionPresentation,
  64.                                                           extra=1,
  65.                                                           can_delete=False)
  66.  
  67.     ExhibitionStatisticsFormSet = inlineformset_factory(models.Exhibition,
  68.                                                         models.ExhibitionStatistics,
  69.                                                         form=forms.ExhibitionStatisticsForm,
  70.                                                         extra=3,
  71.                                                         can_delete=False)
  72.  
  73.  
  74.     OrganizationsFormSet = inlineformset_factory(models.Exhibition,
  75.                                                  models.Exhibition.organizations.through,
  76.                                                  form=ChooseOrganizationForm,
  77.                                                  formset=BaseChooseOrganizationFormSet,
  78.                                                  can_delete=True,
  79.                                                  fields=['organization', 'country', 'city',
  80.                                                          'organization_select', 'city_select'],
  81.                                                  extra=1)
  82.  
  83.     if request.method == 'POST':
  84.         exhibition_form = forms.AdminSiteExhibitionForm(request.POST, request.FILES)
  85.         contact_formset = ExhibitionContactFormSet(request.POST, request.FILES)
  86.         photo_formset = ExhibitionPhotoFormSet(request.POST, request.FILES)
  87.         video_formset = ExhibitionVideoFormSet(request.POST, request.FILES)
  88.         presentation_formset = ExhibitionPresentationFormSet(request.POST, request.FILES)
  89.         statistics_formset = ExhibitionStatisticsFormSet(request.POST, request.FILES)
  90.         organizations_formset = OrganizationsFormSet(request.POST, request.FILES, prefix='Exhibition_organizations')
  91.  
  92.         if (exhibition_form.is_valid()
  93.                 and contact_formset.is_valid()
  94.                 and photo_formset.is_valid()
  95.                 and video_formset.is_valid()
  96.                 and presentation_formset.is_valid()
  97.                 and statistics_formset.is_valid()
  98.                 and organizations_formset.is_valid()):
  99.  
  100.             exhibition = exhibition_form.save(creator=request.user)
  101.  
  102.             for contact in contact_formset.save(commit=False):
  103.                 contact.exhibition = exhibition
  104.                 contact.save()
  105.  
  106.             for photo in photo_formset.save(commit=False):
  107.                 photo.exhibition = exhibition
  108.                 photo.save()
  109.  
  110.             for video in video_formset.save(commit=False):
  111.                 video.exhibition = exhibition
  112.                 video.save()
  113.  
  114.             for presentation in presentation_formset.save(commit=False):
  115.                 presentation.exhibition = exhibition
  116.                 presentation.save()
  117.  
  118.             for statistics in statistics_formset.save(commit=False):
  119.                 statistics.exhibition = exhibition
  120.                 statistics.save()
  121.  
  122.             for organization_exhibition in organizations_formset.save(commit=False):
  123.                 organization_exhibition.exhibition = exhibition
  124.                 organization_exhibition.save()
  125.  
  126.             action = request.POST.get('action', None)
  127.             if action in ('create-new', 'save-and-continue'):
  128.                 msg = _('A new exhibition named "%s" was successfully created') % exhibition.name
  129.                 messages.success(request, msg)
  130.                 if action == 'save-and-continue':
  131.                     return redirect('cms_edit_exhibition', exhibition.id)
  132.                 if action == 'create-new':
  133.                     return redirect('cms_add_exhibition')
  134.  
  135.             return redirect('cms_exhibitions_dashboard')
  136.  
  137.     else:
  138.         exhibition_form = forms.AdminSiteExhibitionForm()
  139.         contact_formset = ExhibitionContactFormSet()
  140.         photo_formset = ExhibitionPhotoFormSet()
  141.         video_formset = ExhibitionVideoFormSet()
  142.         presentation_formset = ExhibitionPresentationFormSet()
  143.         statistics_formset = ExhibitionStatisticsFormSet()
  144.         organizations_formset = OrganizationsFormSet(prefix='Exhibition_organizations')
  145.  
  146.     return render(request, 'exhibition/cms_exhibition_form.html', {
  147.         'form': exhibition_form,
  148.         'formset': contact_formset,
  149.         'photo_formset': photo_formset,
  150.         'video_formset': video_formset,
  151.         'presentation_formset': presentation_formset,
  152.         'statistics_formset': statistics_formset,
  153.         'organizations_formset': organizations_formset,
  154.         'form_title': exhibition_form.create_title,
  155.     })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement