2017-07-26 8 views
0

私のフォームは正常に動作していましたが、突然動作が停止してしまいました。 I形の場合の印刷物のform.errors有効でないが、それはフォームはdjangoビューのPOSTリクエストでデータベースに保存されません

  • ユーザー
  • は必須項目です印刷し 。

    models.py

    class TarWithDocker(models.Model): 
    name = models.CharField(max_length=255) 
    user = models.ForeignKey(User, related_name='deployments') 
    slug = AutoSlugField(populate_from='name', unique=True, name='slug') 
    archive = models.FileField(upload_to='archives', name='archive') 
    created_at = models.DateTimeField(default=timezone.now, editable=False) 
    
    class Meta: 
        ordering = ['-created_at'] 
    

    views.py

    class AwdDeployment(LoginRequiredMixin, CreateView): 
    template_name = 'deployments/awdDeployment.html' 
    
    def get(self, request, *args, **kwargs): 
        return render(request, 'deployments/awdDeployment.html', {}) 
    
    def post(self, request, *args, **kwargs): 
        if request.method == 'POST': 
         form = AwdDeploymentForm(request.POST, request.FILES) 
         if form.is_valid(): 
          deployment = TarWithDocker() 
          deployment.name = form.cleaned_data['name'] 
          deployment.user = self.request.user 
          deployment.archive = form.cleaned_data['archive'] 
          deployment.save() 
          return HttpResponse("Submitted") 
         else: 
          print("not saved") 
    
        else: 
         print("something happnes wrong") 
         form = AwdDeploymentForm() 
        return HttpResponseRedirect(reverse('users:deployments:awd')) 
    
    +0

    印刷(self.request.user)を実行して、端末に印刷されているかどうかを確認してください。 – Exprator

    +0

    端末にユーザ名が印刷されています! –

    +0

    あなたはそれを稼働させましたか? – Exprator

    答えて

    1

    あなたは、要求内のユーザーを持っていますが、POSTデータに は、それはあなたを助けるとされるわけではないことがあります。

    post_data = request.POST.copy() 
    post_data.update({'user': request.user.pk}) 
    form = AwdDeploymentForm(post_data, request.FILES) 
    
    +0

    リクエスト中にユーザオブジェクトを提供するLoginRequiredMixinを使用しています! –

    +0

    あなたの方法で動作しますが、ユーザーがリクエストに応じて利用できない理由がありますか? –

    +0

    mixinは要求にユーザーを追加しますが、投稿データには追加しません –

    関連する問題