https://github.com/mozilla/moztrap/blob/master/moztrap/view/manage/products/forms.py#L45 - L50 implements creating the product, then creating the version. i called model.ProductVersion.objects.get_or_create() instead of using self.cleaned_data['version'] in model.ProductVersion.objects.create().