代码之家  ›  专栏  ›  技术社区  ›  moltarze

Django表格不可见

  •  0
  • moltarze  · 技术社区  · 8 年前

    我试图创建一个简单的Django网页,使用表单,但我的表单不可见。我已经阅读了所有的Django文档,并阅读了与此问题相关的多个问题,但我没有找到解决问题的方法。

    视图.py

    from django.shortcuts import render
    from .forms import FileForm
    
    with open('calendar.txt') as f:
      file_content = f.read()
    
    def home(request):
      return render(request, 'main/index.html',{'file_content':file_content})
    
    def form_get(request):
      # if this is a POST request we need to process the form data
      if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = FileForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
          pass
      else:
        form = FileForm()
      return render(request, 'index.html', {'form': FileForm.form})
    

    网址.py

    from django.conf.urls import url
    from django.contrib import admin
    from main import views
    
    urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^$', views.home, name='home'),
    ]
    

    索引.py

    {% extends "base.html" %}
    
    {% block content %}
      <h1>Welcome to the calendar!</h1>
      <form action="/#" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit">
      </form>
      {{form}}
    {% endblock content %}
    

    Link to program

    urls.py 档案,但我已经看了很多遍了,没有发现任何错误。有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   halfer Jatin Pandey    8 年前

    尝试

     def form_get(request):
        # if this is a POST request we need to process the form data
        if request.method == 'POST':
          # create a form instance and populate it with data from the request:
        form = FileForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
          pass
      else:
        form = FileForm()
      return render(request, 'main/index.html', {'form': form})
    

    查看如何更改渲染的上下文 {'form': FileForm.form} 到 {'form': form}

    在修复视图之后,您需要添加一个实际的URL来访问它。您当前的URL

    url(r'^$', views.index, name='home'),
    

    views.index 而不是 views.form_get . 更改要使用的URL form_get 它会起作用的。

    url(r'^$', views.form_get, name='home'),
    

    不知道你是否想要 / 去表格,或者如果你想 / index.html 文件。