2017-03-08 47 views
2

私はちょうどDjangoの学習を始めました。このプロジェクトでは、 "Tango with Django"のチュートリアルブックに従います。ボタンが表示されているようですが、フォームの入力フィールドに問題があります。Djangoフォームフィールドが表示されません

は、ここに私のコードです:

models.py

[...] 
class Idea(models.Model): 
    keyword = models.ForeignKey(Keyword) 
    word = models.CharField(max_length=120) 
    count = models.IntegerField(default=1) 

    def __str__(self): 
     return self.word 

forms.py

[...] 
class Meta: 
    model = Keyword 
    fields = ('name',) 

class IdeaForm(forms.ModelForm): 
    word = forms.CharField(max_length=120) 
    count = forms.IntegerField(widget=forms.HiddenInput(), initial=1) 

    class Meta: 
     model = Idea 
     fields = ('word',) 
     exclude = ('keyword',)   

views.py

[...] 
def keyword_detail(request, keyword_name_slug): 
    form = IdeaForm() 
    context_dict = {} 

    try: 
     keyword = Keyword.objects.get(slug=keyword_name_slug) 
     ideas = Idea.objects.filter(keyword=keyword) 

     context_dict['keyword'] = keyword 
     context_dict['ideas'] = ideas 

    except Keyword.DoesNotExist: 
     context_dict['keyword'] = None 
     context_dict['ideas'] = None 

    if request.method == 'POST': 
     form = IdeaForm(request.POST) 
     if form.is_valid(): 
      idea = form.save(commit=False) 
      idea.keyword = keyword 
      idea.count = 1 
      idea.save() 
      return keyword_detail(request, keyword_name_slug) 
     else: 
      print(form.errors) 

    context_dict['form'] = form 

    return render(request, 'openminds/keyword.html', context_dict) 

keyword.html

[...] 

<h3>Add a new Idea</h3> 
<div> 
    <form id="idea_form" method="post" action="">{% csrf_token %} 
     {% for hidden in forms.hidden_fields %} 
      {{ hidden }} 
     {% endfor %} 
     {% for field in forms.visible_fields %} 
      {{ field.errors }} 
      {{ field }} 
     {% endfor %} 

     <input type="submit" name="submit" value="Add Idea" /> 
    </form> 
</div> 

答えて

1

をテンプレートに渡していますが、formsを使用しようとしています。

関連する問題