Этот экземпляр QueryDict является неизменяемым (Попытка вручную установить данные формы)
Когда я пытаюсь сохранить. Это не позволит мне. Я пытаюсь добавить данные в базу данных путем ввода формы вручную. Мне трудно ввести данные в форму и сохранить их.
Например, я пытался получить данные формы, а затем установить данные, которые я хотел бы установить, но я полагаю, что это неправильно? Я не могу найти команду для установки данных формы вручную. Возможно ли это?
просмотров
from telnetlib import LOGOUT
from django.shortcuts import redirect, render
from django.http import HttpResponse
from matplotlib import use
from matplotlib.pyplot import get
from matplotlib.style import context
from werkzeug import Request
from .models import Account, Question, sni, Option
from django.contrib.auth.hashers import make_password, check_password
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from django.contrib.auth import authenticate, logout
from django.contrib.auth import login as dj_login
from django.forms import ModelForm, forms
from django.contrib.auth.decorators import login_required
from .forms import AccountAuthenticationForm, SNIForm, createUserForm, resultForm
def question_detail(request, id ='default'):
question = Question.objects.get(QuestionsID = id)
options = Option.objects.filter(QuestionsID = question)
if request.method == 'POST':
current_user = request.user
form = resultForm(request.POST)
form.data['userID'] = current_user.userID
form.data['QuestionsID'] = id
optionID = request.POST.get('result')
form.data['ChosenOptionID'] = optionID
if form.is_valid:
form.save()
messages.success(request, "Answer Submitted")
return redirect('dashboardPage')
context = {'question' : question,
'options' : options}
return render(request, 'questionForm.html', context)
html для формы
Мое исправление:
Виды
def question_detail(request, id ='default'):
question = Question.objects.get(QuestionsID = id)
options = Option.objects.filter(QuestionsID = question)
if request.method == 'POST':
current_user = request.user
c = current_user.userID
acc = Account.objects.get(userID=c)
OptionID = request.POST.get('result')
op = Option.objects.get(OptionID = OptionID)
if OptionID and c:
obj = Result.objects.create(userID = acc, QuestionsID = question, ChosenOptionID = op)
obj.save()
messages.success(request, "Answer Submitted")
return redirect('dashboardPage')
context = {'question' : question,
'options' : options}
return render(request, 'questionForm.html', context)
Я сохранил его непосредственно в базу данных через модель. Я не использовал функцию формы.