43👍
I guess the problem is that you inherited ModelAdmin instead of UserAdmin from django.contrib.auth.admin in your admin.py.
Sample code:
from django.contrib.auth.admin import UserAdmin
from .models import Employee
class EmployeeAdmin(UserAdmin):
pass
admin.site.register(Employee, EmployeeAdmin)
15👍
You can add the form code to the admin.py file. You will, however, also need to add the definition of the form class, not just the save() method and also the definition of the UserAdmin descended class. I think example will clarify:
class UserCreationForm(forms.ModelForm):
class Meta:
model = CustomUser
fields = ('email',)
def save(self, commit=True):
# Save the provided password in hashed format
user = super(UserCreationForm, self).save(commit=False)
user.set_password(self.cleaned_data["password"])
if commit:
user.save()
return user
class CustomUserAdmin(UserAdmin):
# The forms to add and change user instances
add_form = UserCreationForm
list_display = ("email",)
ordering = ("email",)
fieldsets = (
(None, {'fields': ('email', 'password', 'first_name', 'last_name')}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('email', 'password', 'first_name', 'last_name', 'is_superuser', 'is_staff', 'is_active')}
),
)
filter_horizontal = ()
admin.site.register(CustomUser, CustomUserAdmin)
This should get you started. You will need to customize the classes’s fields to match the fields of your user class.
More info is here: https://docs.djangoproject.com/en/dev/topics/auth/customizing/
- [Django]-Django template convert to string
- [Django]-Fetching static files failed with 404 in nginx
- [Django]-Django, Models & Forms: replace "This field is required" message
0👍
Because it directly save in the database. So before it save you must override the method for hashing the password. Add this in your form:
def save(self, commit=True):
# Save the provided password in hashed format
user = super(MyForm, self).save(commit=False)
user.set_password(self.cleaned_data["password"])
if commit:
user.save()
return user
- [Django]-How to know current name of the database in Django?
- [Django]-Django and domain driven design
- [Django]-Django Test Client Method Override Header
Source:stackexchange.com