title: Django admin UserChangeForm with UUID field as primary key
body: <p>I'm working on a Django app that will contain sensitive User data, so I'm taking a number of steps to anonymise User objects and their data. </p>
  
  <p>I created custom 'User' object that subclassses the AbstractBaseUser model like so:</p>
  
  <pre><code>class User(AbstractBaseUser, PermissionsMixin):
      (...)
      id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
      (...)
  </code></pre>
  
  <p>It has the following linked <code>ModelAdmin</code> object:</p>
  
  <pre><code>from django.contrib.auth.forms import UserChangeForm
  
  
  @admin.register(User)
  class UserAdmin(admin.ModelAdmin):
      form = UserChangeForm
  </code></pre>
  
  <p>I'm using UUID fields for primary keys to ensure maximum anonymity, yet I would like to be able to reset User passwords in the Django Admin (like you can do with the default <code>User</code> object) </p>
  
  <p>However, when I open a User in the admin and press the link to change the password I get the following error message:</p>
  
  <pre><code>User with ID "21362aca-6918-47ea-9b29-275350a89c54/password" doesn't exist. Perhaps it was deleted?
  </code></pre>
  
  <p>The admin url is still expecting a url with the an integer as its <code>pk</code> value. </p>
  
  <p>So it seems that I have to override the admin url configuration in the ModelAdmin definition, but I was wondering if there was a simpler way to achieve the desired result - as I imagine that replacing the User.pk with an UUID field is a fairly regular occurrence and I image many developers have ran into this problem. I tried to find some kind of settings / toggle to achieve this but to no avail, am I missing something?</p>