Мне нужно зарегестрировать пользователя, но при его регистрации, вначале должна создаваться запись в другой модели (Project) и пользователь должен привязываться (ForeignKey) к этой записи. Я решил, что в методе form_valid выберу максимальное значение id из Project, прибавлю к нему единицу и потом создам нужную мне запись в Project + Свяжу User по project_id + 1
class Registration(FormView):
template_name = 'profile/registration.html'
form_class = RegistrationForm
success_url = 'cabinet:main'
def form_valid(self, form):
self.object = form.save(commit=False)
qs = models.Project.objects.all().aggregate(Max('id'))
project_id = (qs['id__max']) + 1
project = models.Project(
id=project_id,
project_name='Новый проект',
)
project.save()
self.object.project = project_id #PrimaryKey
self.object = form.save()
messages.success(self.request, 'Вы успешно зарегестрированы')
return super().form_valid(form)
В результате мне выдает ошибку:
Cannot assign "9": "Profile.project" must be a "Project" instance.
при этом запись в model.Project создается, но функция ее не видит.
Кам можно решить эту проблемку?