2013-04-29 12 views
5

मैं एक ही मॉडल का उपयोग दो रूपों के लिए करना चाहता हूं और क्षेत्र के लेबल बदलना चाहता हूं कि मैं लेबल कैसे बदल सकता हूं?फ़ील्ड लेबल कुरकुरे रूपों Django

यह मेरा एक रूप है:

class jobpostForm(forms.ModelForm): 

    class Meta: 

     model = jobpost 
     fields = ('job_type','title','company_name','location','country','description','start_date','end_date','how_to_apply') 

    widgets = { 

     'job_type':RadioSelect(),  
     'location':TextInput(attrs={'size':'70','cols': 10, 'rows': 20}), 
     'description': TinyMCE(attrs={'cols':'100', 'row': '80'}), 
      'start_date':AdminDateWidget(attrs={'readonly':'readonly'}), 
      'end_date':AdminDateWidget(attrs={'readonly':'readonly'}), 
      'how_to_apply':RadioSelect(), 

    } 

    def __init__(self, *args, **kwargs): 
     super(jobpostForm, self).__init__(*args, **kwargs) 
     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')) 


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

की तरह मैं 'नौकरी स्थान' को 'स्थान' को बदलने के लिए .. मैं कैसे यह कर सकते हैं करना चाहते हैं?

उत्तर

13

यह समस्या वास्तव में Django Crispy Forms के लिए विशिष्ट नहीं है।

एक विकल्प JobPostForm के init() विधि में लेबल सेट करना है।

def __init__(self, *args, **kwargs): 
    super(JobPostForm, self).__init__(*args, **kwargs) 
    self.fields['location'].label = "Job Location" 

इस तरह के प्रश्नों से निपटने पर एक अच्छा पठन Overloading Django Form Fields है।

+0

मैं यह कर रहा हूं लेकिन यह लेबल नहीं बदल रहा है –

+0

आप अपने टेम्पलेट में फॉर्म (फ़ील्ड) कैसे प्रदर्शित कर रहे हैं? – arie

+0

पूरे फॉर्म को प्रदर्शित करने जैसे {% crispy form%} –

संबंधित मुद्दे