Fix django admin for other typeclasses. ChannelDB still requires subscribers to validate. Changed PickleField's clean method to prevent attribute errors for attributes added during basetype setup.

This commit is contained in:
Tehom 2016-12-06 07:06:46 -05:00
parent c16a03fb5e
commit ee19a92c55
4 changed files with 54 additions and 5 deletions

View file

@ -6,6 +6,7 @@ This defines how Comm models are displayed in the web admin interface.
from django.contrib import admin
from evennia.comms.models import ChannelDB
from evennia.typeclasses.admin import AttributeInline, TagInline
from django.conf import settings
class ChannelAttributeInline(AttributeInline):
@ -70,4 +71,23 @@ class ChannelAdmin(admin.ModelAdmin):
"""
return ", ".join([str(sub) for sub in obj.db_subscriptions.all()])
def save_model(self, request, obj, form, change):
"""
Model-save hook.
Args:
request (Request): Incoming request.
obj (Object): Database object.
form (Form): Form instance.
change (bool): If this is a change or a new object.
"""
obj.save()
if not change:
# adding a new object
# have to call init with typeclass passed to it
obj.set_class_from_typeclass(typeclass_path=settings.BASE_CHANNEL_TYPECLASS)
obj.at_init()
admin.site.register(ChannelDB, ChannelAdmin)