ForeignKey emitter recursion can be infinite and crashes python

Erik LaBianca avatarErik LaBianca created an issue

It's arguable that doing this is a poor design, but it's sure confusing when the python interpreter goes boom for the first time. It's only an issue in the TIP where there is a case for emitting RelatedManagers.

If you have two models, A and B, with a relationship between them, and include the relationship field in both handlers "fields" property, trying to emit either handler will blow up with a stack overflow.

I've implemented a simple recursion stack that prevents double-serializing any object at http://bitbucket.org/easel/django-piston/changeset/f92035638c9f

It might be a better idea to just throw an exception instead of return None, judgement call I guess.

Comments (2)

  1. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.