2014-01-26 3 views
0

Я не могу получить приложение django для публикации в db. Я пытаюсь передать свой внешний ключ, чтобы опубликовать его правильно.Форма размещения 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() 

() Append, чтобы сформировать класс.

+0

Извините, я начал класс формы, но кажется, что form.is_valid() не работает. Я ищу еще кое-что на google. Кажется, что я не передаю все поля, поэтому это недействительно. – bink1time

Смежные вопросы