Hello,

I would like to use tg2.0 purely as RESTful JSON middleware along with
jquery 1.4.2. However, I must be misunderstanding how JSON is supposed
to be passed via PUT for modifying the objects. In this case, I
created a "Person" model with a name and a one-to-many relationship to
emails (person can have multiple emails).

When I GET from /person/1.json, the HTTP body is:
{"model": "Person", "value": {"title": "Captain", "surname": "Doe",
"emails": [1, 2], "firstname": "John", "id": 1}}

but when PUT'ing back to the same URL:
{"id":"1","firstname":"John","surname":"Doh","title":"Captain","sprox_id":"","emails":
[1,2]}

with this:
               data=JSON.stringify(data);
               $.ajax({
                url:ajaxURL,
                type:'PUT',
                data:data,
                dataType:'json',
                contentType:'application/json',
                success:function(data,status,request)
                {
                },
                error:ajaxFailed
                });

it seems that the CrudRestController really wants to see the url-
encoded form for the put method (which is obviously not JSON),
otherwise the **kw in the put method does not get populated.

If I use the form url encoded stuff this way:

               //data=JSON.stringify(data);
               $.ajax({
                url:ajaxURL,
                type:'PUT',
                data:data,
                //dataType:'json',
                //contentType:'text/javascript',
                success:function(data,status,request)
                {
                },
                error:ajaxFailed
                });
            });
where "data" is a javascript object, to generate:
id=1&firstname=John&surname=Doh&title=Captain&sprox_id=&emails%5B
%5D=1&emails%5B%5D=2

the put method gets "emails[]":[1,2] (note the extra brackets) in the
arguments which prompts the sprox saormprovider to delete the related
emails (apparently because there is no "emails" key).

I thought one of these uses would be the default behavior, but I have
hit roadblocks with both approaches. What are the best practices for
tg2 read-write RESTful interfaces?

Cheers,
M

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to