установите его в def

а самом деле это может быть простой случай, но мне сложно разобраться.

У меня есть две воронки регистрации пользователей (корпоративная и все остальные). Когда корпоративный пользователь создает экземпляр User через мою регистрационную форму, я также хотел бы, чтобы он вводил дополнительные формы, которые создают связанные экземпляры (на основе моделей Website и Organization_Contact).

Я знаю, как решить эту проблему, выполняя дополнительные синхронные или асинхронные запросы, но я бы хотел, чтобы пользователь заполнил три формы и отправил их одним щелчком мыши.

Моя проблема здесь заключается в том, что две другие формы полагаются на внешний ключ пользователя в качестве поля. Я сделал это поле "null = True, blank = True", чтобы я мог проверять и сохранять формы без внешнего ключа, но в конечном итоге я хочу добавить этот ключ в оба экземпляра модели.

Я думал, что смогу проверить три формы, сохранить пользовательскую форму, а затем использовать набор запросов модели для возврата нового User.id (все в одном представлении). Затем я бы добавил это значение user_id в два других словаря форм (WebsiteForm и Organization_ContactForm).

Это будет работать так:

def register_company(request):
    if request.method=='POST'
       uform=UserCreationForm(request.POST, prefix='user')
       sform=SiteForm(request.POST, prefix='site')
       oform=OrgForm(request.POST, prefix='site')
       if uform.is_valid() and sform.is_valid() and oform.is_valid():
            uform.save()
            user=User.objects.get(email__iexact=uform.cleaned_data['email'])
            uid=unicode(user.id)
       #now I'd add uid back into the SiteForm and Orgform dictionaries and then save both instances              

Проблемы: 1) Не уверен, смогу ли я сохранить форму модели и затем вернуть этот экземпляр модели в виде набора запросов в одном представлении

2) Я говорю, что я не уверен, потому что я не смог решить проблему с попыткой передать переменную в набор запросов.

Кажется, что метод get manager не принимает переменную там. Я предполагаю, что столько, сколько я передал эквивалентную жестко закодированную строку, и это сработало.

Итак, я подумал о создании нового метода менеджера (электронная почта), который принял бы переменный аргумент (очищенное поле электронной почты), а затем повторил процесс сохранения одной формы модели, получения данных идентификатора модели и сохранения других форм модели.

Я также подумал, что смогу справиться с этой проблемой с помощью сигнала после сохранения.

Просто общее направление здесь было бы очень полезно. Мне нужна отправная точка.

Ответы на вопрос(2)

Ваш ответ на вопрос