2013-04-02 3 views
0

Моя первая проблема заключается в том, что данные не поступают в базу данных. Она не показывает никаких ошибок, но не сохраняет их. , и вторая проблема заключается в том, что я предварительно заполняю поле формы запросом, установленным в раскрывающемся списке, но он показывает мне идентификатор (первичный ключ), и я хочу показать другое поле. Как я могу это сделать?данные не хранятся в базе данных django

мой взгляд

def payment(request): 
    #form = jobpostForm_first() 
    #country_list = Country.objects.all() 
    if request.POST: 
     form = jobpostForm_detail(request.POST) 

     if form.is_valid(): 
      if '_Submit' in request.POST: 
       form.save() 
       return HttpResponseRedirect('/thanks/') 
    else: 
     form = jobpostForm_detail() 
     #form.fields['country'].queryset = Country.objects.all() 

    c = {} 
    c.update(csrf(request)) 

    return render_to_response('portal/display.html',{ 
     'form':form 
    },context_instance=RequestContext(request)) 

мой ModelForm:

class jobpostForm_detail(ModelForm): 
    class Meta: 

     model = payment_detail 
     fields = ('payment_type','country') 

    def __init__(self, *args, **kwargs): 
     super(jobpostForm_detail, self).__init__(*args, **kwargs) 

     self.fields['country'].queryset = Country.objects.all() 
     self.fields['payment_type'].queryset = Payment_types.objects.all() 

     self.helper = FormHelper() 
     self.helper.form_class = 'horizontal-form' 
     self.helper.form_id = 'id-jobpostform' 
     self.helper.form_class = 'blueForms' 
     self.helper.form_method = 'post' 


     self.helper.add_input(Submit('submit_addcontent', 'Pay')) 

     super(jobpostForm_detail, self).__init__(*args, **kwargs) 

Мой шаблон:

<form method="post" action="/portal/next/post/" class="blueForms" id="id-jobpostform"> 


    {% csrf_token %} 

    {% crispy form %} 

    </form> 
+0

try 'form.full_clean()' before' form.save() ', он должен выдавать ошибки, если они есть. Кроме того, поскольку вы отправляете обратно запрос Context, вам не нужно делать 'c.update' – karthikr

+0

ничего не показывать –

+0

ok .. он перенаправляется на'/thanks'? – karthikr

ответ

0

Почему вы проверки "_Submit" в вашем представлении?

Я предлагаю вам прочитать how to use a form in a view, особенно комментарии:

... 
def contact(request): 
    if request.method == 'POST': # If the form has been submitted... 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
... 

В вашем случае, вам просто нужно позвонить form.save() после form.is_valid()

Вопрос для вас: можете ли вы объяснить этот бит кода ваш класс формы? опечатка, я полагаю?

widgets = { 

     }), 

} 
+0

o да, я использовал виджеты before..forgot для удаления..и даже когда я удаляю эту проверку (если «_Submit» в запросе.POST :) все равно она не хранится в db. –

+0

очистите код в вашем OP с помощью фактического кода. о, да, если у вас есть какие-то ошибки, они тоже сделают :) –

+0

убрал его..может у плз сказать мне, почему он не собирается в базу данных? –

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