首页 > 解决方案 > 如何自动选择一个对象FK项目(django)

问题描述

我有一个问答测验,当我把它放在 HTML 中时,我有这样一个结果图像 要保存问题,我必须首先手动选择问题。所以我希望这会自动发生。每个问题都会自动出现。但我无法理解如果 html 必须更改的视图以及我必须更改的内容

这是我的代码-->

模型.py

from django.db import models

# Create your models here.
class Question(models.Model):
    question=models.CharField(max_length=100)
    answer_question=models.CharField(max_length=100, default=None)

    def __str__(self):
        return self.question

    
class Answer(models.Model):
    questin=models.ForeignKey(Question, on_delete=models.CASCADE)
    answer=models.CharField(max_length=100,blank=True)

    def __str__(self):
        return str(self.questin)

表格.py

from django import forms
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.forms import ModelForm

from .models import Question,Answer

class QuestionForm(forms.ModelForm):
    class Meta:
        model=Question
        fields="__all__"


class AnswerForm(forms.ModelForm):
    class Meta:
        model=Answer
        fields="__all__"


视图.py

from django.shortcuts import render
from django.shortcuts import render, HttpResponse
from django.http import HttpResponseRedirect
from django.shortcuts import redirect
from .forms import QuestionForm,AnswerForm
from .models import Question


def home(request):
    form=QuestionForm
    if request.method=='POST':
        form=QuestionForm(request.POST)
        if form.is_valid():
            form.save()

    return render(request, "question/base.html", {"form":form})

def ans(request):
    form=AnswerForm
    e=Question.objects.all()
    if request.method=="POST":
        form=AnswerForm(request.POST)
        if form.is_valid():
            form.save()
            
    return render(request, "question/ans.html", {"form":form, "e":e})
    

base.html

<!DOCTYPE html>
<html>
    <head>
        <title>question</title>
    </head>

    <body>
        {% for i in e %}
        <form method="POST" novalidate>
            {% csrf_token %}
                
               {% for a in form %}

               {{a}}

               {% endfor %}
            
            <input type="submit" name="sub">
        </form>
        {% endfor %}
        
        

    </body>
</html>

标签: pythonhtmlpython-3.xdjangoforms

解决方案


推荐阅读