現在、Djangoアプリケーションでは、ユーザーがキーワードの同義語を設定できるようになっています。Django:モデルやテンプレートのないビューからオブジェクトを更新する
class UserSynonym(models.Model):
user = models.ForeignKey(Tenant)
key = models.CharField(max_length=255)
value = models.CharField(max_length=255)
リストビューの概要をユーザに提供し、各エントリは、ユーザが「値」を変更することができ、関連する EditViewにリンクする「編集」ボタンが続く:以下のモデルを使用して、その パラメータ。
これで、オブジェクトを元の意味に素早くリセットできるボタンを追加したいと思います( '値'を 'key'の値に設定してください)。 このボタンを1つのボタンにしたいフォームまたはhtmlテンプレート。リスト上のボタンで、押すとモデルの値がリセットされます。
私はこのタスクのEditViewを編集する必要がありますが、これらのビューはフォームまたはHTMLテンプレート/ページ でそれらを提供していることを否定し続けます。
EditViewを変更して、ユーザーをフォームまたは新しいWebページにリダイレクトせずにオブジェクトの値を変更する方法はありますか?
編集:私は現在、私は一種の私の問題を解決し
class SynonymUpdate(UserRootedMixin, UpdateView):
model = UserSynonym
form_class = SynonymCreateForm
def get_form_kwargs(self):
kwargs = super(SynonymUpdate, self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
def form_valid(self, form):
form.instance.linked_user = self.kwargs.get('user')
return super(SynonymUpdate, self).form_valid(form)
def get_success_url(self, **kwargs):
return reverse('synonym_list', args=[self.request.user.id])
ここでユーザーに質問することは絶対にありません。 'currentuser'は' request.user'と同じ* dbオブジェクトです。あなたはただそれを渡すべきです。 –