2
class Setting(models.Model):
        id=models.AutoField(primary_key=True, unique=True)
        ldap_server = models.CharField(max_length=100, default='ldap://yourDomain.in')
        ldap_server_username = models.CharField(max_length=100, null=True)
        ldap_server_password = models.CharField(max_length=100, null=True)
    def save(self, *args, **kwargs):
        ldap_server=self.ldap_server
        ldap_server_username = self.ldap_server_username
        ldap_server_password = self.ldap_server_password
        try:
            l = ldap.initialize(ldap_server)
            l.protocol_version = ldap.VERSION3
            l.set_option(ldap.OPT_REFERRALS, 0)
            l.simple_bind_s(ldap_server_username, ldap_server_password)
            super(Setting, self).save(*args, **kwargs)
        except:
            messages.error(request, "You have logged in..!")

here I faced the error in

messages.error(request, "You have logged in..!")

I can't use

messages.error(request, "You have logged in..!")

Anybody know alternative way to show error message.

1 Answer 1

1

Try this in admin.py:

#admin.py
from models import Setting
from django.contrib import admin
from django import forms


class SettingForm(forms.ModelForm):
    class Meta:
        model = Setting

        def clean(self):
            ldap_server = self.cleaned_data.get('ldap_server')
            ldap_server_username = self.cleaned_data.get('ldap_server_username')
            ldap_server_password = self.cleaned_data.get('ldap_server_password')

            # your ldap logic here

            if your_condition:
                raise form.ValidationErro('You have logged in..!')
        return self.cleaned_data


class SettingAdmin(admin.ModelAdmin):
    form = SettingForm
    list_display = ('ldap_server', 'ldap_server_username', 'ldap_server_password')

admin.site.register(Setting, SettingAdmin)

Remove save() method from your model.

You can move SettingForm in forms.py file and then import it in admin.py

I hope this will help

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your help. but i use a another way to show the error message from models.py

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.