text: from api import models
  from django import forms
  from django.contrib import admin
  from django.contrib.auth.models import Group
  from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
  from django.contrib.auth.forms import ReadOnlyPasswordHashField
  
  
  class UserCreationForm(forms.ModelForm):
      password1 = forms.CharField(label='Password', widget=forms.PasswordInput)
      password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput)
  
      class Meta:
          model = models.MyUser
          fields = ('email',)
  
      def clean_password2(self):
          password1 = self.cleaned_data.get("password1")
          password2 = self.cleaned_data.get("password2")
          if password1 and password2 and password1 != password2:
              raise forms.ValidationError("Passwords don't match")
          return password2
  
      def save(self, commit=True):
          user = super(UserCreationForm, self).save(commit=False)
          user.set_password(self.cleaned_data["password1"])
          if commit:
              user.save()
          return user
  
  
  class UserChangeForm(forms.ModelForm):
      password = ReadOnlyPasswordHashField()
  
      class Meta:
          model = models.MyUser
          fields = ('email', 'password', 'is_active', 'is_admin')
  
      def clean_password(self):
          return self.initial["password"]
  
  
  class MyUserAdmin(BaseUserAdmin):
      form = UserChangeForm
      add_form = UserCreationForm
  
      list_display = ('email', 'first_name', 'last_name', 'is_admin',)
      list_filter = ('is_admin', 'is_active')
      fieldsets = (
          (None, {'fields': ('email', 'password')}),
          ('Permissions', {'fields': ('is_admin',)}),
      )
      add_fieldsets = (
          (None, {
              'classes': ('wide',),
              'fields': ('email', 'password1', 'password2')}
           ),
      )
      search_fields = ('email',)
      ordering = ('email',)
      filter_horizontal = ()
  
  
  class EmployeeAdmin(admin.ModelAdmin):
      list_display = ('id', 'user', 'company',)
  
  
  admin.site.register(models.MyUser, MyUserAdmin)
  admin.site.register(models.Chateau)
  admin.site.register(models.Millesime)
  admin.site.register(models.Appellation)
  admin.site.register(models.Classement)
  admin.site.register(models.Couleur)
  admin.site.register(models.ISWN)
  admin.site.unregister(Group)
  