Django - Foreign Keys in Fixtures

numegil picture numegil · Oct 26, 2011 · Viewed 13k times · Source

I have a fixture of "User" objects (just the default Django auth ones), and am trying to create a fixture of "Profile" objects. Each profile has a one-to-one relation to a user object, and defines some more custom stuff for that user.

As far as I can tell, the normal way of dealing with foreign keys in a fixture is to just hardcode the primary key of the foreign object into the fixture. Is there a way to avoid doing that?

Basically, I'm trying to have something like '"user":username' in the fixture rather than '"user":pk'.

Is there any way to do this?

Answer

Işık Kaplan picture Işık Kaplan · Jul 20, 2020

What you are trying to do is serializing with natural keys, explained here.

You basically need to define how to get the object from other fields in these special manager and model methods.

Just realized that this question has been asked 9 years ago, what? Why did it appear in the feed at the top?