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_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()
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))