【问题标题】:Django ModelForm not saving any dataDjango ModelForm 不保存任何数据
【发布时间】:2020-05-04 06:13:39
【问题描述】:

使用 django 3,我有一个模型和一个模型表单:

class Upload(models.Model):
    content = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='images/', blank=True, null=True)

class UploadForm(forms.ModelForm):
    class Meta:
        model = Upload
        fields = ['content',]

    def clean_content(self):
        content = self.cleaned_data.get('content')
        if len(content) > MAX_CONTENT_LENGTH:
            raise forms.ValidationError('This content is too long')

视图如下所示:

def upload_view(request, *args, **kwargs):
    form = UploadForm(request.POST or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance = instance.save()
        form = UploadForm()

我只提示用户上传内容。保存表单后,即使我在表单中输入了一些文本,在数据库中它的值也会为 NULL。我该如何解决这个问题?

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    如下更正

    if request.method == "POST":
        if form.is_valid():
            instance = form.save(commit=False)
            # instance.something = something
            instance.save()
            return redirect('/')
    else:
         form = UploadForm()
    return render(request, 'your.html', {'form': form})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2018-07-07
      • 2020-10-11
      • 2015-10-08
      相关资源
      最近更新 更多