feat(core): Models url kwarg helper

ref: #773 #767
This commit is contained in:
2025-05-27 07:20:50 +09:30
parent 6b899e477d
commit 279ea1991d
2 changed files with 38 additions and 1 deletions

View File

@ -36,6 +36,10 @@ class CenturionAudit(
model_notes = None
@property
def url_model_name(self):
return CenturionAudit._meta.model_name
class Meta:
# db_table = 'centurion_audit'
@ -255,3 +259,18 @@ class AuditMetaModel(
super().clean_fields(exclude = exclude)
def get_url_kwargs(self):
kwargs = {}
kwargs.update({
'app_label': self._meta.app_label,
'model_name': str(self._meta.model_name).replace('audithistory', ''),
'model_id': self.model.id,
**super().get_url_kwargs(),
})
return kwargs

View File

@ -223,7 +223,7 @@ class CenturionModel(
url_basename = url_basename + '-detail'
url = reverse( viewname = url_basename, kwargs = { 'pk': self.id } )
url = reverse( viewname = url_basename, kwargs = self.get_url_kwargs() )
if not relative:
@ -234,6 +234,24 @@ class CenturionModel(
def get_url_kwargs(self) -> dict:
"""Get URL Kwargs
Fecth the kwargs required for building a models URL using the reverse
method.
**Note:** It's advisable that if you override this function, that you
call it's super, so as not to duplicate code. That way each override
builds up[on the parent `get_url_kwargs` function.
Returns:
dict: Kwargs required for reverse function to build a models URL.
"""
return { 'pk': self.id }
def save(self, force_insert = False, force_update = False, using = None, update_fields = None):
"""Save Centurion Model