POSTリクエストでフォームデータをデータベースに保存しようとしていますが、リクエストは正常に完了しましたが、POSTリクエストは正常に終了しましたが、データはデータベースに保存されていません
models.py
class Image(models.Model):
user = models.ForeignKey(User, related_name='images')
tagName = models.CharField(max_length=255)
instance = models.CharField(max_length=255)
forms.py
class BuildImageForm(forms.ModelForm):
class Meta:
fields = ('user', 'tagName', 'instance')
model = Image
views.py
class BuildImage(LoginRequiredMixin, CreateView):
form_class = BuildImageForm
model = Image
template_name = 'images/buildImage.html'
success_url = 'user/gui'
def get(self, request, *args, **kwargs):
objectlist = request.user.instances.all()
return render(request, 'images/buildImage.html', {'form': forms.BuildImageForm,
'objectlist': objectlist})
def form_valid(self, form):
instance = form.save()
instance.user = self.request.user
instance.tagName = self.request.tagName
instance.instance = str(self.request.instance_name)
instance.save()
return HttpResponse(status=200)
アップデート - を編集私は私の見解更新しています
def post(self, request, *args, **kwargs):
if request.method == 'POST':
form = BuildImageForm(request.POST)
if form.is_valid():
data = form.cleaned_data
form.instance.user = self.request.user
form.instance.tagName = data['tagName']
form.instance.instance = data['instance']
form.save()
else:
print(form.errors)
return HttpResponse(status=200)
が今では、コンソールでそのエラーを出力します。
<ul class="errorlist"><li>instance<ul class="errorlist"><li>This field is required.</li></ul></li></ul> [23/Jul/2017 04:36:56] "POST /user/images/buildImage/ HTTP/1.1" 200 0
はまだデータベースに保存されません! –
質問の更新をご覧ください! –
cleaned_dataのユーザー以外のデータをインスタンスに明示的に割り当てる必要はありません。モデルフォームはそこにあります。ユーザーをインスタンスに割り当てるだけで済みます。残りのフォームは、フォームを送信するときにすでに割り当てられています。 – zaidfazil