Django ModelForm не сохраняет никаких данных - PullRequest
0 голосов
/ 04 мая 2020

Используя 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 голосов
/ 04 мая 2020

исправить следующим образом

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