文件上载字段不显示(Django)

2024-06-02 05:03:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django表单,但当我在我的网站上呈现它时,它没有显示“上传文件”字段。我做错了什么?理想情况下,表单有一个自动提交的相关问题ID(例如,用户上传文件时不必手动输入)

models.py

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    response_file = models.FileField(upload_to='audio_responses')

forms.py

class PostAudio(forms.ModelForm):
    class Meta:
        model = Choice
        fields = ('response_file',)

views.py

def QuestionRecordSubmitView(request, pk):
    model = Question

    if request.method == 'POST':
        form = PostAudio(request.POST, request.FILES)
        if form.is_valid():
            form.instance.question_id = pk
            form.save()

            # get survey pk
            question_instance = Question.objects.get(pk=pk)
            survey_pk = question_instance.survey.pk
            return redirect('survey-share',pk=survey_pk)
    else:
        form = PostAudio()
    return render(request, 'survey/question_audio_submit.html')

html

{% extends "landing/base.html" %}
{% block content %}

    <h2>New Submission</h2>
    <form method="POST" class="post-form" enctype="multipart/form-data">{% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="save btn btn-default">Save</button>
    </form>
{% endblock content %}

Tags: 文件instancepyform表单modelsrequesthtml