По умолчанию администратор будет использовать первичный ключ вашей модели для URL-адресов администратора, вы можете установить это уникальное поле в качестве первичного ключа модели для достижения этой цели.
your_field = models.TypeOfField(primary_key=True)
Если вы не хотите этого делать, вы можете переопределить get_object
метод вашей модели admin
def get_object(self, request, object_id, from_field=None):
queryset = self.get_queryset(request)
model = queryset.model
# This would usually default to the models pk
field = model._meta.get_field('you_field') if from_field is None else model._meta.get_field(from_field)
try:
object_id = field.to_python(object_id)
return queryset.get(**{field.name: object_id})
except (model.DoesNotExist, ValidationError, ValueError):
return None