2017-07-26 73 views
0

我的表單工作正常,但突然停止工作,我卡在這裏,請幫助我! 當形式的情況下,我打印form.errors無效,則它將打印表單沒有保存在數據庫中通過POST請求在Django視圖

  • 用戶
  • 是必需字段。

    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_data = request.POST.copy() 
    post_data.update({'user': request.user.pk}) 
    form = AwdDeploymentForm(post_data, request.FILES) 
    
    +0

    我使用LoginRequiredMixin提供請求中的用戶對象! –

    +0

    它以你的方式工作,但有沒有任何理由,用戶不能在請求? –

    +0

    mixin將用戶添加到請求中,但不會添加到發佈數據中 –

    相關問題