Присоединение зарегистрированного пользователя к форме и модели на основе классов - PullRequest
0 голосов
/ 25 октября 2018

views.py

from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import UploadDocument
from .models import Document


def upload_document(request):

    if request.method == 'POST':
        form = UploadDocument(request.POST, request.FILES)
        if form.is_valid():
            # file is saved
            instance = Document(passport=request.FILES['passport'])
            instance.save()
            instance = Document(id_license=request.FILES['id_license'])
            instance.save()
            instance = Document(User=request.user)
            instance.save()
            # needs to add instance of User from cache
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadDocument()
    return render(request, 'verification/verificate.html', {'form': form})

forms.py

from django import forms


class UploadDocument(forms.Form):

    passport = forms.ImageField()
    id_license = forms.ImageField()

models.py

from django.conf import settings
from django.db import models


class Document(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
                            on_delete=models.CASCADE,)
passport = models.ImageField()
id_license = models.ImageField()

Значение исключения: не выполнено ограничение NOT NULL: valid_document.user_id

Я хочу создать форму, которая позволяет загружать документы для проверки.Как прикрепить авторизованного пользователя?

1 Ответ

0 голосов
/ 25 октября 2018

попробуйте этот код:

views.py

def upload_document(request):

if request.method == 'POST':
    form = UploadDocument(request.POST, request.FILES)
    if form.is_valid():
        instance=Document()
        instance.passport=request.FILES['passport']
        instance.id_license=request.FILES['id_license']
        instance.User=request.user
        instance.save()

        return HttpResponseRedirect('/success/url/')
else:
    form = UploadDocument()
return render(request, 'verification/verificate.html', {'form': form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...