前提・実現したいこと
DjangoでWebサイトを作成しています。
ユーザーが投稿をした後、すぐにユーザーを開放してあげて、その後バックエンドで処理をしたいと考えています。
例えば、ユーザーが日本語で文章を投稿したら、それを3か国語(英語、ドイツ語、フランス語)に翻訳して保存するという場合、
①ユーザーが日本語で投稿
↓
②バリデーション
↓
③日本語の投稿文を保存
↓
④英語に翻訳して保存
↓
⑤ドイツ語に翻訳して保存
↓
⑥フランス語に翻訳して保存
↓
⑦ユーザーにhtmlを返す
という順番だと、だいぶユーザーを待たせてしまいます。
そこで、③日本語の投稿文を保存したら、⑦ユーザーにhtmlを返し、ユーザーを開放した上で、バックエンドで④以降をやれれば良いと思います。
何か、良い方法はあるでしょうか。
ソースコード
ユーザー投稿時の処理を下記のようなCreateViewで記述しています。
投稿されると、ユーザーはsuccess_urlに飛んで一連の流れは終わってしまいます。
ユーザーがsuccess_urlに飛んだ後、バックエンドで処理する方法が分かればありがたいです。
python
1# views.py 2class QuestionCreateView(CreateView): 3 model = Question 4 form_class = QuestionForm 5 lang = get_language() 6 7 def form_valid(self, form): 8 form.instance.user = self.request.user 9 return super().form_valid(form) 10 11 template_name = 'question/question_create_bootstrapform.html' 12 13 success_url = "/"
以上、よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/04/04 21:30