Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- A better way to create multiple objects in one go in Django
- @login_required
- def admin_import_residents_confirm(request, comp_slug, file_id):
- comp = get_object_or_404(Comp, slug=comp_slug)
- file = get_object_or_404(ResidentImportFile, id=file_id)
- resident_list = ResidentImportData.objects.filter(comp=comp,
- file=file)
- if request.method == 'POST':
- for resident in resident_list:
- try:
- # create the user objects here
- pw = User.objects.make_random_password(length=6,
- allowed_chars='1234567890')
- fusername = '{0}{1}{2}'.format(resident.first_name,
- resident.last_name,
- re.sub('D', '', resident.unit_number))
- user = User.objects.create(
- username = fusername,
- password = pw,
- first_name = resident.first_name,
- last_name = resident.last_name)
- # second create the profile objects
- Profile.objects.create(user=user,
- contact_number=resident.contact_number)
- # third create the role objects
- role = Role.objects.filter(comp=comp,
- name=2)[0]
- role.user.add(user)
- # fourth create the usercomp object
- Usercomp.objects.create(
- user=user,
- comp=comp,
- unit_number=resident.unit_number,
- block_number=resident.block_number)
- # fifth store the one time passwords
- TempPasswords.objects.create(
- user=user,
- password=pw)
- # sixth update created status
- resident.is_created = True
- resident.save()
- except Exception, e:
- print e
- url = reverse('admin_import_residents_confirm',
- args=[comp.slug, file.id ])
- return redirect(url)
- url = reverse('admin_resident_list', args=[comp.slug])
- return redirect(url)
Add Comment
Please, Sign In to add comment