DjangoのCreateViewでユーザーから入力されたデータを加工して別のテーブルに格納する方法。
例としてユーザーから受け取ったURLからhttpに完全一致する文字列を削除してIDフィールドに格納してみる。
from django.views.generic.edit import CreateView
from .models import Post
class CreateView(CreateView):
model = Post
fields = ['text', 'url', 'category']
template_name = 'bbs/create.html'
def form_valid(self, form):
# フォームの値を取得
form.instance.author = self.request.user
form.instance.url = form.cleaned_data['url'].replace('http://', '').replace('https://', '') # データを加工してurlフィールドに格納
return super(CreateView, self).form_valid(form)







