Почему я создаю две записи одновременно, используя django - bootstrap -modal-forms - PullRequest
0 голосов
/ 16 марта 2020

Я использую django - bootstrap -modal-forms.

My forms.py:

class UserAppForm(BSModalForm):
class Meta:
    model = UserApp
    fields = ('app', 'app_type')

В поле зрения, чтобы присоединить текущего пользователя, я override form_valid ():

class AppCreateView(BSModalCreateView):
    template_name = 'apps/app_create.html'
    form_class = UserAppForm
    success_message = 'Success: App was created.'
    success_url = reverse_lazy('dashboard')

    def form_valid(self, form):
        app = form.save(commit=False)
        profile = Profile.objects.get(user=self.request.user)
        app.profile = profile
        app.save()
        return redirect(self.success_url)

Но, если я пытаюсь создать UserApp, я получаю два экземпляра одновременно. Где моя ошибка?

1 Ответ

0 голосов
/ 22 марта 2020

Правильный способ переопределить form_valid ():

 def form_valid(self, form):
    if not self.request.is_ajax():
        app = form.save(commit=False)
        profile = Profile.objects.get(user=self.request.user)
        app.profile = profile
        app.save()
    return HttpResponseRedirect(self.success_url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...