2014-01-26 105 views
0

我無法讓我的django應用程序發佈到數據庫。我試圖通過我的外鍵,所以我可以正確地發佈它。表單發佈Django

對不起,如果它是基本的東西我很想念我剛剛開始。我認爲它永遠不會形成= ResultForm(request.POST)。只是給了我表單= ResultForm。

這裏是我的代碼:

型號:

class Result(models.Model): 
    category = models.ForeignKey(Category) 
    category_result = models.CharField(max_length=200) 
    rating = models.DecimalField('', '', 8, 3) 
    votes = models.IntegerField(default=0) 
    created_by = models.IntegerField(default=0, null=True, blank=True) 
    created_on = models.DateTimeField('created on') 
    def __unicode__(self): 
     return self.category_result 

形式:

class ResultForm(forms.ModelForm): 
    category_result = forms.CharField(max_length=200,help_text="Your best line") 
    rating = forms.DecimalField(widget=forms.HiddenInput(), initial=0) 
    votes = forms.IntegerField(widget=forms.HiddenInput(), initial=0) 
    created_by = forms.IntegerField(widget=forms.HiddenInput(), initial=1) 
    category = forms.IntegerField(widget=forms.HiddenInput()) 
    class Meta: 
     model = Result 
     fields = ('category_result', 'rating', 'votes') 

觀點:

def help_out(request, category_id): 
    if request.method == 'POST': 
     form = ResultForm(request.POST) 

     if form.is_valid(): 
      form.save(commit=False) 
      form.category = category_id 
      form.save() 

      return index(request) 

     else: 
      print form.errors 

    else: 
     form = ResultForm 
    context = {'form': form, 'category_id': category_id} 
    return render(request,'pocketwingman/help_out.html', context) 

模板:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Pocketwingman</title> 
    </head> 

    <body> 
     <h1>Add a Result</h1> 

      <form id="result_form" method="post" action="/pocketwingman/help_out/{{category_id}}/"> 

       {% csrf_token %} 
       {% for hidden in form.hidden_fields %} 
        {{ hidden }} 
       {% endfor %} 

       {% for field in form.visible_fields %} 
        {{ field.errors }} 
        {{ field.help_text}} 
        {{ field }} 
       {% endfor %} 

       <input type="submit" name="submit" value="Create Line" /> 
      </form> 

    </body> 

</html> 

URL配置:

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index'), 
    url(r'^(?P<category_id>\d+)/$', views.help_me, name='help_me'), 
    url(r'^help_out/(?P<category_id>\d+)/$', views.help_out, name='help_out'), 

) 

回答

1

你應該開始你的形式,如果它不是一個POST:

else: 
    form = ResultForm() 

追加(),形成類。

+0

對不起,我啓動了窗體類,但似乎form.is_valid()失敗。我在谷歌上查找更多內容。看來我沒有通過所有的領域,所以它是無效的。 – bink1time