Django ModelForm不保存任何数据

时间:2020-05-04 06:13:39

标签: django django-models django-forms

使用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值。我该如何解决?

1 个答案:

答案 0 :(得分:0)

按以下说明进行纠正

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})