Skip to content

Commit ef6e631

Browse files
committed
fix admin
1 parent 7ddcbfd commit ef6e631

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

backend/proteins/admin.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ def get_fields(self, request, obj=None):
266266
# Filter, Camera, Light
267267
own = ["owner_" + obj.get_category_display().split(" ")[0].lower()]
268268
fields.extend(own)
269+
# Add clickable link to owner's admin page (for existing objects)
270+
if obj and obj.owner:
271+
fields.append("owner")
269272
self.autocomplete_fields.extend(own)
270273
fields += [
271274
"category",
@@ -284,11 +287,18 @@ def get_fields(self, request, obj=None):
284287

285288
@admin.display(description="Owner")
286289
def owner(self, obj):
287-
url = reverse(
288-
f"admin:proteins_{obj.owner._meta.model.__name__.lower()}_change",
289-
args=(obj.owner.pk,),
290-
)
291-
link = f'<a href="{url}">{obj.owner}</a>'
290+
owner = obj.owner
291+
# FluorState is a base class - resolve to the actual subclass admin
292+
if isinstance(owner, FluorState):
293+
if owner.entity_type == FluorState.EntityTypes.PROTEIN:
294+
model_name = "state"
295+
else:
296+
model_name = "dyestate"
297+
else:
298+
model_name = owner._meta.model.__name__.lower()
299+
300+
url = reverse(f"admin:proteins_{model_name}_change", args=(owner.pk,))
301+
link = f'<a href="{url}">{owner}</a>'
292302
return mark_safe(link)
293303

294304
@admin.display(description="Spectrum Preview")

0 commit comments

Comments
 (0)