Ejemplo n.º 1
0
def edit(request, instance_id=None):
    instance = None
    if instance_id:
        instance = get_object_or_404(Something, id=instance_id)
    if request.method == "POST":
        print request.POST
        form = SomethingForm(request.POST, instance=instance)
        if form.is_valid():
            form.save()
            return redirect("exampleapp.views.list")
    else:
        form = SomethingForm(instance=instance)
    return render_to_response("exampleform.html", {"form": form}, context_instance=RequestContext(request))
 def test_attach_media(self):
     """Form should save properly with media attached."""
     
     user = User.objects.create_user('user', '*****@*****.**')
     media = [
         MediaUpload.objects.create(
             caption='media%s' % (i + 1),
             media='blah',
             creator=user
         )
         for i in range(2)
     ]
     pks = ','.join([str(m.pk) for m in media])
     
     # create with form, save immediately
     form = SomethingForm({'name': 'thing', 'mimesis_attached_media': pks})
     self.assertTrue(form.is_valid())
     obj = form.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'thing')
     self.assertRaises(AttributeError, lambda:form.save_mimesis_media)
     obj_assocs = MediaAssociation.objects.for_model(obj)
     self.assertEqual(len(obj_assocs), len(media))
     self.assertTrue(all(ma.media in media for ma in obj_assocs))
     
     # create with form, save later
     form = SomethingForm({'name': 'thing', 'mimesis_attached_media': pks})
     obj = form.save(False)
     self.assertFalse(obj.pk)
     obj.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'thing')
     form.save_mimesis_media()
     obj_assocs = MediaAssociation.objects.for_model(obj)
     self.assertEqual(len(obj_assocs), len(media))
     self.assertTrue(all(ma.media in media for ma in obj_assocs))
     
     # edit existing object, save immediately
     obj = Something.objects.create(name='thing')
     form = SomethingForm(instance=obj)
     self.assertFalse(form.is_valid())
     form = SomethingForm({'name': 'edited', 'mimesis_attached_media': pks}, instance=obj)
     self.assertTrue(form.is_valid())
     form.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'edited')
     self.assertRaises(AttributeError, lambda:form.save_mimesis_media)
     obj_assocs = MediaAssociation.objects.for_model(obj)
     self.assertEqual(len(obj_assocs), len(media))
     self.assertTrue(all(ma.media in media for ma in obj_assocs))
     
     # edit existing object, save later
     obj = Something.objects.create(name='thing')
     form = SomethingForm({'name': 'edited', 'mimesis_attached_media': pks}, instance=obj)
     self.assertTrue(form.is_valid())
     form.save(False)
     obj.save()
     form.save_mimesis_media()
     obj_assocs = MediaAssociation.objects.for_model(obj)
     self.assertEqual(len(obj_assocs), len(media))
     self.assertTrue(all(ma.media in media for ma in obj_assocs))
 def test_normal_operation(self):
     """Form should save an object normally with no media."""
     
     # create with form, save immediately
     form = SomethingForm({'name': 'thing'})
     self.assertTrue(form.is_valid())
     obj = form.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'thing')
     self.assertRaises(AttributeError, lambda:form.save_mimesis_media)
     
     # create with form, save later
     form = SomethingForm({'name': 'thing'})
     obj = form.save(False)
     self.assertFalse(obj.pk)
     obj.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'thing')
     form.save_mimesis_media()
     
     # edit existing object, save immediately
     obj = Something.objects.create(name='thing')
     form = SomethingForm(instance=obj)
     self.assertFalse(form.is_valid())
     form = SomethingForm({'name': 'edited'}, instance=obj)
     self.assertTrue(form.is_valid())
     form.save()
     self.assertTrue(obj.pk)
     self.assertEqual(obj.name, 'edited')
     self.assertRaises(AttributeError, lambda:form.save_mimesis_media)
     
     # edit existing object, save later
     obj = Something.objects.create(name='thing')
     form = SomethingForm({'name': 'edited'}, instance=obj)
     self.assertTrue(form.is_valid())
     form.save(False)
     obj.save()
     form.save_mimesis_media()