2013-02-14 22 views

उत्तर

13

आप कुप्पी के व्यवस्थापक के बारे में SQLAlchemy मॉडल के साथ बात कर रहे हैं, और आप sqlamodel.ModelView से इनहेरिट द्वारा एक दृश्य घोषणा कर रहे हैं, तो आप सिर्फ करने के लिए इस जोड़ सकते हैं:

<form> 
{{ form.example(disabled=True) }} 
</form> 
+9

यह तुम क्या चाहते हो सकता है। मैंने इसे कार्यान्वित किया लेकिन ध्यान दिया कि जिन क्षेत्रों को अक्षम किया गया था उन्हें ** जमा करने पर ** मंजूरी दे दी गई थी। जब मैंने इसके बजाय 'readonly' का उपयोग किया, तो मुझे अपेक्षित व्यवहार मिला (मान परिवर्तित नहीं होता है)। – Ian

6

आप अपने जिंजा टेम्पलेट में क्षेत्र प्रदान कर रहे हैं, तो बस disabled=true में पारित अगर WTForms kwarg को नहीं पहचानता है, है, यह सिर्फ यह एचटीएमएल तत्व के लिए एक विशेषता होने के लिए गुजरता है।

class DisabledTextField(TextField): 
    def __call__(self, *args, **kwargs): 
    kwargs.setdefault('disabled', True) 
    return super(DisabledTextField, self).__call__(*args, **kwargs) 
7

इस कोशिश आपकी कक्षा परिभाषा:

class MyModelView(BaseModelView): 
    column_list = ('name', 'last_name', 'email') 
    form_widget_args = { 
     'email':{ 
      'disabled':True 
     } 
    } 
8

मेरे पास @ थकांग के उत्तर पर टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है, जो मेरे लिए काम करने के बहुत करीब है। disabled विशेषता POST डेटा से फ़ील्ड को बहिष्कृत करती है, लेकिन readonly का उपयोग वांछित प्रभाव था।

from wtforms.fields import TextField 

class ReadonlyTextField(TextField): 
    def __call__(self, *args, **kwargs): 
    kwargs.setdefault('readonly', True) 
    return super(ReadonlyTextField, self).__call__(*args, **kwargs) 
+0

क्या इसे फ़ॉलो करने का कोई तरीका है? form_widget_args = { 'type_values': { 'केवल पढ़ने के लिए': 'केवल पढ़ने के लिए' } } –

+0

लॉरेंस, मैं क्षेत्र के रूप में आप केवल पढ़ने के लिए होना चाहता हूँ एक ही नाम के रूप में form_extra_fields में निर्दिष्ट करना होगा और यह इस क्षेत्र को पार कर जाएगी। – pip

+0

i.e. form_overrides = dict (your_field_name = ReadonlyTextField) या संभवतः form_extra_fields = dict (your_field_name = ReadonlyTextField ('लेबल', ...)) – pip

1

मैं जब मैं टेक्स्ट फ़ील्ड के लिए disabled का उपयोग करने की कोशिश की अजीब त्रुटियों मिला, तो मैं readonly बजाय प्रयोग किया:

class MyModelView(BaseModelView): 
    column_list = ('name', 'last_name', 'email') 
    form_widget_args = { 
     'email':{ 
      'readonly':True 
     } 
    }