Guest User

Untitled

a guest
Aug 3rd, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. A better way to create multiple objects in one go in Django
  2. @login_required
  3. def admin_import_residents_confirm(request, comp_slug, file_id):
  4. comp = get_object_or_404(Comp, slug=comp_slug)
  5. file = get_object_or_404(ResidentImportFile, id=file_id)
  6. resident_list = ResidentImportData.objects.filter(comp=comp,
  7. file=file)
  8.  
  9. if request.method == 'POST':
  10. for resident in resident_list:
  11. try:
  12. # create the user objects here
  13. pw = User.objects.make_random_password(length=6,
  14. allowed_chars='1234567890')
  15. fusername = '{0}{1}{2}'.format(resident.first_name,
  16. resident.last_name,
  17. re.sub('D', '', resident.unit_number))
  18. user = User.objects.create(
  19. username = fusername,
  20. password = pw,
  21. first_name = resident.first_name,
  22. last_name = resident.last_name)
  23.  
  24. # second create the profile objects
  25. Profile.objects.create(user=user,
  26. contact_number=resident.contact_number)
  27.  
  28. # third create the role objects
  29. role = Role.objects.filter(comp=comp,
  30. name=2)[0]
  31. role.user.add(user)
  32.  
  33. # fourth create the usercomp object
  34. Usercomp.objects.create(
  35. user=user,
  36. comp=comp,
  37. unit_number=resident.unit_number,
  38. block_number=resident.block_number)
  39.  
  40. # fifth store the one time passwords
  41. TempPasswords.objects.create(
  42. user=user,
  43. password=pw)
  44.  
  45. # sixth update created status
  46. resident.is_created = True
  47. resident.save()
  48.  
  49. except Exception, e:
  50. print e
  51. url = reverse('admin_import_residents_confirm',
  52. args=[comp.slug, file.id ])
  53. return redirect(url)
  54.  
  55. url = reverse('admin_resident_list', args=[comp.slug])
  56. return redirect(url)
Add Comment
Please, Sign In to add comment