[Answer]-Post json to django but get 500 error

1👍

As you are getting a 500 Internal server error one could assume that there is an issue in your view handler code. It’s hard to say what’s causing it really, so you should try to figure why it’s happening. From looking at your code I can see two things that might cause this error.

First you are using dict as a variable name, which is probably a bad idea since dict is a built-in type in python.

The other possible cause could be the way your are accessing the req dict. You are accessing the keys username, password and game_id1. If any of these should be missing in the dict it will throw a KeyError exception. I like to access dicts using req.get('username', None) instead (replace None with another default value if you prefer. Another way to tackle that issue would be try/catch exception handling.

Also, depending on your Gamer model, trying to create a using an existing username (assuming you have unique=True) would probably throw an exception as well, so you should handle that as well (I think get_or_create could be handy here).

Generally when dealing with problems of this kind, use the inspector in your browser. It lets you see all the data sent and received during the request, which means (if you’re running django in DEBUG mode) you’ll also get to see the default stack trace page in the inspector. It should hold some valuable indication to what’s causing the issue. Another option would be to write a small middleware or enable extended error logging to log errors to strout/stderr.

👤Simon

Leave a comment