2011-07-25 14 views
7

मैं Django व्यवस्थापक पृष्ठ की save_model समारोह में कुछ कस्टम त्रुटि संदेश वापस जाने के लिए चाहते हैं।Django व्यवस्थापक वापसी कस्टम त्रुटि संदेश

class EmployerAdmin(admin.ModelAdmin): 
    exclude = ('update_user','updatedate','activatedate','activate_user') 

    def save_model(self, request, obj, form, change): 
    if obj.department != None and obj.isDepartmentSuggested: 
     obj.isDepartmentSuggested =False 
    else: 
     return "You don't set a valid department. Do you want to continue ?" 

    obj.update_user = request.user 
    obj.updatedate = datetime.datetime.now() 
    obj.save() 

बेशक, Else हिस्सा सही नहीं है लेकिन मैं यह जानना चाहता हूं कि मैं क्या चाहता हूं।

मैं मुझे एक ही रास्ता या दस्तावेज है कि ऐसा करने के लिए सुझाव देने के लिए खुश हूँ।

#forms.py 
from your_app.models import Employer 

class EmployerAdminForm(forms.ModelForm): 
    class Meta: 
     model = Employer 

    def clean(self): 
     cleaned_data = self.cleaned_data 
     department = cleaned_data.get('department') 
     isDepartmentSuggested = cleaned_data.get('isDepartmentSuggested') 
     if department == None and not isDepartmentSuggested: 
      raise forms.ValidationError(u"You haven't set a valid department. Do you want to continue?") 
     return cleaned_data 

#admin.py 
from django.contrib import admin 
from your_app.forms import EmployerAdminForm 
from your_app.models import Employer 

class EmployerAdmin(admin.ModelAdmin): 
    exclude = ('update_user','updatedate','activatedate','activate_user') 
    form = EmployerAdminForm 

admin.site.register(Employer, EmployerAdmin) 

आशा है कि आप बाहर में मदद करता है: धन्यवाद

उत्तर

10

आप अपने EmployerAdmin में अपने सत्यापन करने के लिए एक फार्म का उपयोग करने की आवश्यकता है।

+0

धन्यवाद। मैं यही चाहता था। क्या आप मुझे कोई विचार दे सकते हैं कि मैं त्रुटि संदेश के आगे एक पॉप-अप बॉक्स या जारी रखें बटन कैसे प्रस्तुत कर सकता हूं? या मैं :) चाहिए – brsbilgic

+1

सबसे पहले, आप संबंधित क्षेत्रों सेट करने की आवश्यकता नहीं के रूप में/कि अगर लागू होता है, जब से तुम लोगों को जारी रखने के लिए देना चाहते हैं, भले ही वे एक चयन नहीं करते हैं की आवश्यकता होगी, और या नल। पॉप-अप करने के लिए, आपको एक जावास्क्रिप्ट "पुष्टि" संवाद की आवश्यकता होती है। कुछ विचार प्राप्त करने के लिए: http://jqueryui.com/demos/dialog/#modal-confirmation पर एक नज़र डालें। – Brandon

+0

क्या आप मुझे इस मामले के समाधान का सुझाव दे सकते हैं जब मैं कुछ अतिरिक्त विधि के साथ अपलोड की गई फ़ाइल को जांचना चाहता हूं और फिर त्रुटियों को वापस कर सकता हूं? – andi

0

मैं Django 1.6.3 का उपयोग कर रहा है, और मैं ब्रेंडन के जवाब देने के लिए जोड़ना चाहते हैं।

EmployerAdmin वर्ग नीचे अलग पंक्ति में admin.site.register(Employer, EmployerAdmin) जोड़ें; यह है, form = EmployerAdminForm से नीचे, अनइंडेंट।

यह मुझे कुछ समय यह पता लगाने की ले ली क्यों ब्रैंडन का जवाब मेरे लिए काम नहीं कर रहा था और सत्यापन नहीं चल रहे थे, जाहिरा तौर पर, तुम बस पहले व्यवस्थापक पर रजिस्टर करने के लिए की जरूरत है।

चीयर्स।

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। –

+0

समस्या यह है कि मेरे पास पर्याप्त प्रतिनिधि बिंदु नहीं हैं, और मुझे लगा कि इसे दूसरों को परेशानी बचाने के लिए साझा किया जाना चाहिए जिसे मैंने पहले सामना किया था। :) –

+0

क्षमा करें मैंने व्यवस्थापक पंजीकरण छोड़ दिया। मैंने अपना जवाब अपडेट कर लिया है। – Brandon