-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Registrando novos modelo no site xadmin
Diferente da administração padrão, xadmin precisa que modelos sejam registrados em um script Python chamado adminx.py
É nesse script que são registrados modelos do banco de dados, definidos dentro um aplicativo Django.
Para exemplificar o foi dito, com um app chamado 'app' ele registraria modelos da seguinte forma (dentro dentro do script adminx.py)
from app import models
import xadmin
class MyModelAdmin(object):
pass
xadmin.site.register(models.AppModel, MyModelAdmin)
Uma coisa bastante importante a notar, é que a classe de definições do xadmin
não herda de admin.ModelAdmin
.
Xadmin usa um modelo implícito de herança de classes (isso acaba causando confusão no começo).
Mas na prática MyModelAdmin
é equivalente a admin.ModelAdmin
.
Isso que dizer que ao definir a classe MyModelAdmin
, podemos atribuir (para alterar), o site
xadmin em diversos aspectos que são semelhantes ao admin.ModelAdmin
do admin padrão.
Mais um exemplo, só que agora alterando coisas já conhecidas do admin.ModelAdmin
.
from app import models
import xadmin
class MyModelAdmin(object):
search_fields = ('app_model_field', )
xadmin.site.register(models.AppModel, MyModelAdmin)
Ao atribuir o valor de um campo para search_fields,
estamos fazendo exatamente o que fazemos ao trabalhar com admin.ModelAdmin
do admin padrão.
Quase toda api do admin.ModelAdmin
, documentada no site Django admin, é compatível com xadmin!