Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在从管理员端保存数据时显示错误消息。?我使用models.model创建模型_Django_Python 3.x_Django Models - Fatal编程技术网

Django 如何在从管理员端保存数据时显示错误消息。?我使用models.model创建模型

Django 如何在从管理员端保存数据时显示错误消息。?我使用models.model创建模型,django,python-3.x,django-models,Django,Python 3.x,Django Models,在这里,我面对的错误 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,

在这里,我面对的错误

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..!")
我不能用

messages.error(request, "You have logged in..!")
有人知道显示错误的替代方法吗 消息。

在admin.py中尝试以下操作:

messages.error(request, "You have logged in..!")
从模型中删除save()方法

您可以在forms.py文件中移动SettingForm,然后将其导入admin.py


我希望这会有所帮助

谢谢你的帮助。但是我使用另一种方式来显示models.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)