O melhor tutorial Ferramentas de gestão Django admin em 2024. Neste tutorial você pode aprender Ferramenta de gerenciamento de ativação,Usando Ferramentas de Gestão,modelos complexos,formulário personalizado,Inline (em linha) de exibição,Exibe uma lista de página,
Django fornece uma ferramentas de gestão baseadas na web.
ferramentas de gerenciamento automatizado Django fazem parte de django.contrib. Você pode vê-lo em settings.py nos itens INSTALLED_APPS:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', )
django.contrib é um conjunto de recursos enorme, que faz parte da base de código do Django.
Nós geralmente criado em urls.py automaticamente na hora de criar o projeto, precisamos apenas para remover comentários.
Os itens de configuração são as seguintes:
from django.contrib import admin admin.autodiscover() # And include this URLpatternpt. urlpatterns = patterns('', # pt. (r'^admin/', include(admin.site.urls)), # pt. )
Quando está tudo configurado, ferramentas de gerenciamento de Django pode ser executado.
Inicie o servidor de desenvolvimento, e, em seguida, acessar o navegador: http: // yoursite: 8000 / admin /, para obter a seguinte tela:
Você pode comandar python manage.py createsuperuser para criar um super usuário, como segue:
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: admin@w3cschool.cc Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
Depois de inserir um nome de usuário e senha de login, a interface é a seguinte:
Para tornar a interface de administração para gerenciar um modelo de dados, é preciso registrar o modelo de dados para admin. Por exemplo, podemos ter sido criado antes do teste modelo TestModel. Modificar TestModel / admin.py:
from django.contrib import admin from TestModel.models import Test # Register your models here. admin.site.register(Test)
Você pode ver a folha de dados de atualização Testmodel:
páginas de administração poderosos, totalmente capazes de lidar com modelos de dados mais complexos.
Um primeiro aumento em mais complexa modelos de dados TestModel / models.py em:
from django.db import models # Create your models here. class Contact(models.Model): name = models.CharField(max_length=200) age = models.IntegerField(default=0) email = models.EmailField() def __unicode__(self): return self.name class Tag(models.Model): contact = models.ForeignKey(Contact) name = models.CharField(max_length=50) def __unicode__(self): return self.name
Existem duas tabelas. Contato Tag para uma chave externa. O contacto pode corresponder a uma pluralidade de Tag.
Nós também podemos ver muitos atribuem tipo não visto antes, como IntegerField armazenar um número inteiro.
Em TestModel / admin.py registrar vários modelos e show:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. admin.site.register([Test, Contact, Tag])
página de administração de atualização, mostram os seguintes resultados:
Nas ferramentas de gerenciamento acima, podemos modelar operações complexas.
Nós podemos personalizar as páginas de administração, em vez de a página padrão. Por exemplo, o acima "add" página. Queremos mostrar apenas o nome e seção de e-mail. Modificar TestModel / admin.py:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fields = ('name', 'email') admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
ContactAdmin acima código define uma classe para ilustrar a página de gerenciamento de formato de exibição.
Dentro dos campos de propriedade define os campos a serem exibidos.
Como tal os dados do modelo corresponde Contacte o nosso sinal quando eles precisam ser registrados junto. Mostrar como se segue:
Também pode bloquear campos de entrada, cada campo também pode definir seu próprio formato. Modificar TestModel / admin.py como se segue:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fieldsets = ( ['Main',{ 'fields':('name','email'), }], ['Advance',{ 'classes': ('collapse',), # CSS 'fields': ('age',), }] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
A seção acima é dividido em duas partes, principal e Advance. aulas descrito na seção formato de CSS. Aqui, deixe avanço parcialmente escondido:
Antecedência próxima seção tem um botão Mostrar para a expansão, ampliou Clique em Ocultar a esconder, como mostrado abaixo:
Contato Tag está acima das teclas externas, para que haja uma relação de referência externa.
Na exibição da página padrão, os dois se separaram, incapaz de refletir a relação de subordinação. Podemos usar o display inline, de modo Tag anexado à página Editar contato é exibida.
Modificar TestModel / admin.py:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class TagInline(admin.TabularInline): model = Tag class ContactAdmin(admin.ModelAdmin): inlines = [TagInline] # Inline fieldsets = ( ['Main',{ 'fields':('name','email'), }], ['Advance',{ 'classes': ('collapse',), 'fields': ('age',), }] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])
Mostrar como se segue:
Digite o número nos registros de contato, página do contato lista se parece com isso:
Nós também pode personalizar a exibição da página, tais como exibição mais colunas na lista, basta adicionar list_display propriedade em ContactAdmin em:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): list_display = ('name','age', 'email') # list admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
Atualizar a exibição da página da seguinte forma:
recursos de pesquisa ao gerenciar um grande número de registros muito, podemos usar a barra de pesquisa para aumentar search_fields página para a lista:
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): list_display = ('name','age', 'email') search_fields = ('name',) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])
Neste exemplo, nós procurar um nome para o w3cschool.cc (nome de domínio local), mostram os seguintes resultados:
Ferramentas Django admin Gestão Existem muitos recursos úteis, os estudantes interessados podem estudar em profundidade o próximo.