Stackoverflow の皆さん、こんにちは。
forms.py のクリーン関数で、いくつかの情報をセッション変数に自動的に保存したいと考えています。ただし、リクエスト変数にアクセスできないようです。
リクエスト変数を渡す例はすべて関数ベースのビューに基づいていますが、ここではクラス ベースのビューを使用しています。
私のforms.py:
from django import forms
from item.models import Item
class CreateItemForm(forms.ModelForm):
class Meta:
model = Item
fields = ('name', 'description')
def __init__(self, request, *args, **kwargs):
self.request = request
super(CreateItemForm, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data = super(CreateItemForm, self).clean()
if cleaned_data.get("address"):
self.request.session['name'] = cleaned_data.get("name")
else:
raise forms.ValidationError(_('Oops, can\'t find location.'))
return self.cleaned_data
私のviews.py:
from django.views.generic.edit import FormView
from item.forms import CreateItemForm
class ItemCreate(FormView):
form_class = CreateItemForm
template_name = 'item/item_create.html'
success_url = 'http://www.google.com'
request
変数をviews.pyからforms.pyに引き渡す最良の方法は何ですか?
ご回答ありがとうございます。