diff --git a/asyncron/base/admin.py b/asyncron/base/admin.py index c2bbc6a..847a899 100644 --- a/asyncron/base/admin.py +++ b/asyncron/base/admin.py @@ -12,6 +12,11 @@ class BaseModelAdmin( admin.ModelAdmin ): formfield = super().formfield_for_dbfield(db_field, **kwargs) if isinstance( formfield, JSONField ): formfield.widget = Codearea( language = "json" ) + + custom_widget = getattr(self, "field_widgets", {}).get(db_field.name, None) + if custom_widget: + formfield.widget = custom_widget() + return formfield def explain_gather_results( self, request, results, fails_to_show = 2 ): diff --git a/asyncron/templates/asyncron/codearea-widget.html b/asyncron/templates/asyncron/codearea-widget.html index 6c1f0fa..a511afb 100644 --- a/asyncron/templates/asyncron/codearea-widget.html +++ b/asyncron/templates/asyncron/codearea-widget.html @@ -5,7 +5,7 @@
{{ textarea }} -
{{ value }}
+ {{ value }}
-{{ hljs_config | json_script:"hlsj-config" }} diff --git a/asyncron/widgets.py b/asyncron/widgets.py index 3063a45..4387d15 100644 --- a/asyncron/widgets.py +++ b/asyncron/widgets.py @@ -10,13 +10,9 @@ class Codearea( Textarea ): super().__init__( *args, **kwargs ) def render( self, name, value, attrs = None, renderer = None ): - print( self ) - print(f"RENDERING: {name=} {value=} {attrs=} {renderer=}") return loader.get_template("asyncron/codearea-widget.html").render({ "textarea": super().render( name, value, attrs, renderer ), "value": value, "target": name, - "hljs_config": { - "language": self.language - } + "language": self.language })