2012-10-14 91 views
1

我想用一些選項製作一個表單並顯示它。但是在輸出html中,我沒有看到表單本身。下面是我的文件:django不顯示錶單

views.py:

from django.http import HttpResponse, Http404 
from django.shortcuts import render_to_response 
from tasks.todoes.models import Note, Resource,/ 
    File, Worker, Client, Task, ProblemByWorker, ProblemByUser, Categories 
from tasks.forms import NewTicketForm 

def new_ticket2(request): 
    method = request.method 
    if request.method == 'POST': 
     form = NewTicketForm(request.POST) 
     if form.is_valid(): 
      pass 
    else: 
     form = NewTicketForm() 
    return render_to_response('new_ticket2.html', {'form':form, 'method':method}) 

forms.py

from django import forms 
from tasks.todoes.models import Note, Resource, File, Worker, Client, Task,/ 
    ProblemByWorker, ProblemByUser, Categories 

class NewTicketForm(forms.Form): 
    name = forms.CharField(max_length=140) 
    pbus = forms.ChoiceField(choices = ProblemByUser.objects.all()) 
    description = forms.CharField(widget=forms.Textarea) 
    clients = forms.ChoiceField(choices = Client.objects.all()) 
    priority = forms.ChoiceField(choices = ('1','2','3','4','5')) 
    category = forms.ChoiceField(choices = Categories.objects.all()) 
    start_date = forms.DateTimeField() 
    due_date = forms.DateTimeField() 
    workers = forms.ChoiceField(choices = Worker.objects.all()) 
    percentage = forms.DecimalField(min_value=0, max_value=100) 

new_ticket2.html

<html> 
<head> 
    <title>New Ticket</title> 
</head> 
<body> 
    {% if form.errors %} 
     {{form.errors}} 
    {% endif %} 
    <p>{{ method }}</p> 
    <form action="" method="post"> 
     <table> 
      {{ form.as_table }} 
     </table> 
     <input type="submit"> 
    </form> 
</body> 
在我的輸出

我只看到 「GET」 和提交按鈕:

<html><head> 
    <title>New Ticket</title> 
...</head> 
<body> 

    <p>GET</p> 
    <form action="" method="post"> 
     <table> 

     </table> 
     <input type="submit"> 
    </form> 
...</body></html> 

爲什麼這麼說?

回答

3

您可能會錯誤地指定選項。閱讀關於choices屬性ChoiceField和約ModelChoiceField的文檔。

class NewTicketForm(forms.Form): 
    PRIORITY_CHOICES = (
     ('1','1'), 
     ('2','2') 
    ) 

    name = forms.CharField(max_length=140) 
    pbus = forms.ModelChoiceField(queryset = ProblemByUser.objects.all()) 
    description = forms.CharField(widget=forms.Textarea) 
    clients = forms.ModelChoiceField(queryset = Client.objects.all()) 
    priority = forms.ChoiceField(choices = PRIORITY_CHOICES) 
    category = forms.ModelChoiceField(queryset = Categories.objects.all()) 
    start_date = forms.DateTimeField() 
    due_date = forms.DateTimeField() 
    workers = forms.ModelChoiceField(queryset = Worker.objects.all()) 
    percentage = forms.DecimalField(min_value=0, max_value=100) 

這似乎是不正確的配置ChoiceFields失敗默默。希望有人在stackoverflow會向我們解釋爲什麼。