Python 表单不显示在html、django上

Python 表单不显示在html、django上,python,html,django,web,Python,Html,Django,Web,我试着制作一个允许用户发表文章的博客,将文章连同发布的日期、时间和发布者一起存储在数据库中 我的问题是,我无法将{{form}}加载到我的UI,这使得我的表单无效,我只是不知道为什么它不会显示在输入文本框中。 我不确定是否需要get_post函数,但我将把它放在views.py中。(我还没有写那部分的html。只需要先看看表单。) 我是Django的新手,有人能帮我吗!!!谢谢 下面是我的档案 blog.html文件: {% block posts %} <div> <spa

我试着制作一个允许用户发表文章的博客,将文章连同发布的日期、时间和发布者一起存储在数据库中

我的问题是,我无法将{{form}}加载到我的UI,这使得我的表单无效,我只是不知道为什么它不会显示在输入文本框中。

我不确定是否需要get_post函数,但我将把它放在views.py中。(我还没有写那部分的html。只需要先看看表单。) 我是Django的新手,有人能帮我吗!!!谢谢

下面是我的档案

blog.html文件:

{% block posts %}
<div>
<span>New Post: </span>
<form method="post" action="{% url 'posts' %}" enctype="multipart/form-data">
            {% csrf_token %}
            <table>
                {{form}}
                <!--not showing in UI-->
            </table>
            <input id="id_post_button" type="submit" value="Submit" /><br>
</form>
<div>
{% endblock %}
Views.py:

@login_required
def post_action(request):
    print("----post action---")
    context = {}
    if request.method == "GET":
        context['form'] = CreatePost()
        context['posts']= PostModel.objects.get(user_id = request.user.id)
        return render(request, "socialnetwork/blog.html", context)

    form = CreatePost(request.POST, request.FILES)
    if not form.is_valid():
        print("not valid ~~~~~~~~")
        context['form'] = form
        context['posts'] = PostModel.objects.get(user_id = request.user.id)
        return render(request, "socialnetwork/blog.html", context)

    post_input_text = form.cleaned_data.get("post_input_text")
    post_date_time = form.cleaned_data.get("post_date_time")
    post_profile = form.cleaned_data.get("post_profile")
    obj = PostModel.objects.get(
        user_id = request.user.id,
    )
    obj.post_input_text = form.cleaned_data.get("post_input_text")
    obj.post_date_time = form.cleaned_data.get("post_date_time")
    obj.post_profile = form.cleaned_data.get("post_profile")
    obj.save()
    form = CreatePost() #refresh the form to original state

    context['form'] = form
    context['posts'] = obj
    return render(request, "socialnetwork/blog.html", context)


def get_post(request, id):
    item = get_object_or_404(PostModel, id=id)
    print('Picture #{} fetched from db: {} (type={})'.format(id, item.post_input_text, item.post_profile, item.post_date_time))
    if not item.post_input_text:
        raise Http404
    return HttpResponse(item.post_input_text)


forms.py

class CreatePost(forms.Form):
    post_input_text = forms.CharField(max_length=100)
    post_profile = forms.CharField(max_length=30)
    post_date_time = forms.DateTimeField()

{{form.as_table}}
更新模板,而不是
{{form}

打开浏览器的检查器-或者使用curl或其他方法获取响应内容-并检查html。
{form.as_p}
是否有效?不,我不知道为什么。。。找不到我丢失的内容,但将其更改为{{form.as_table}时无效
@login_required
def post_action(request):
    print("----post action---")
    context = {}
    if request.method == "GET":
        context['form'] = CreatePost()
        context['posts']= PostModel.objects.get(user_id = request.user.id)
        return render(request, "socialnetwork/blog.html", context)

    form = CreatePost(request.POST, request.FILES)
    if not form.is_valid():
        print("not valid ~~~~~~~~")
        context['form'] = form
        context['posts'] = PostModel.objects.get(user_id = request.user.id)
        return render(request, "socialnetwork/blog.html", context)

    post_input_text = form.cleaned_data.get("post_input_text")
    post_date_time = form.cleaned_data.get("post_date_time")
    post_profile = form.cleaned_data.get("post_profile")
    obj = PostModel.objects.get(
        user_id = request.user.id,
    )
    obj.post_input_text = form.cleaned_data.get("post_input_text")
    obj.post_date_time = form.cleaned_data.get("post_date_time")
    obj.post_profile = form.cleaned_data.get("post_profile")
    obj.save()
    form = CreatePost() #refresh the form to original state

    context['form'] = form
    context['posts'] = obj
    return render(request, "socialnetwork/blog.html", context)


def get_post(request, id):
    item = get_object_or_404(PostModel, id=id)
    print('Picture #{} fetched from db: {} (type={})'.format(id, item.post_input_text, item.post_profile, item.post_date_time))
    if not item.post_input_text:
        raise Http404
    return HttpResponse(item.post_input_text)


class CreatePost(forms.Form):
    post_input_text = forms.CharField(max_length=100)
    post_profile = forms.CharField(max_length=30)
    post_date_time = forms.DateTimeField()