performing different functionality on modelform buttons django

倾然丶 夕夏残阳落幕 提交于 2019-12-13 07:24:05

问题


I have a modelform with 2 buttons and i want to perform different functionality on them. My modelform:

class jobpostForm(ModelForm):
    class Meta:

        model = jobpost
        fields = ('job_title','job_type','job_location','job_description','start_date','end_date','country','how_to_apply')

    widgets = {

        'job_type':RadioSelect(),    
        'job_location':TextInput(attrs={'size':'70'}),   
        'job_description':Textarea(attrs={'cols':200, 'rows':10}),
            'start_date':TextInput(attrs={
                'class': 'datepicker',
                'data-date-format': 'mm/dd/yyyy', 

            }),
            'end_date':TextInput(attrs={
                'class': 'datepicker',
                'data-date-format': 'mm/dd/yyyy', 
            }),

    }

    def __init__(self, *args, **kwargs):
        #super(jobpostForm, self).__init__(*args, **kwargs)
        #self.fields['start_date'].widget.attrs['class'] = 'datepicker'
        super(jobpostForm, self).__init__(*args, **kwargs)
        #self.fields['ref_id'].widget = forms.HiddenInput()
        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.form_action = '/portal/next/post/'

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


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

I want to perform different functionality on submit and preview.How can i access them in my view?


回答1:


A django form really handles two things:

  • Displaying the intitial form on a GET request
  • Processing POST requests with data

You can approach your situation in multiple ways. One way would be to have both buttons submit your form. The preview button would fill in a hidden field named preview. Your form would process the submitted data. If the data included a value in the POST field named preview it would render a preview. Otherwise, it would process the form normally.



来源:https://stackoverflow.com/questions/15895449/performing-different-functionality-on-modelform-buttons-django

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!