2015-04-30 190 views
0

简单问题:是否可以将所有这些信息以一个管理员表单而不是6个分离的链接进行组织?Django管理员继承

我读过关于django管理继承,但模型之间没有继承,如下所示...那么它将如何工作呢?

models.py

# -*- coding: utf-8 -*- 
 
from django.db import models 
 

 
# Create your models here. 
 

 
class User(models.Model): 
 
\t name = models.CharField(max_length=100, verbose_name='Nome Completo') 
 
\t bdate = models.CharField(max_length=10, verbose_name='Data de Nasc.') 
 
\t gender = models.CharField(max_length=15, verbose_name='Sexo') 
 
\t cpf = models.CharField(max_length=14, unique=True, verbose_name='CPF') 
 
\t oab = models.CharField(max_length=15, unique=True, verbose_name='OAB') 
 
\t phone = models.CharField(max_length=15, verbose_name='Celular') 
 
\t email = models.EmailField(max_length=50, verbose_name='E-mail') 
 

 
\t def __unicode__(self): 
 
\t \t return self.name 
 

 
\t class Meta: 
 
\t \t verbose_name = u'1.Identificação' 
 
\t \t verbose_name_plural = u'1.Identificação' 
 

 
class Address(models.Model): 
 
\t user = models.OneToOneField(User, default=0, null=True, blank=True, verbose_name='Nome Completo') 
 
\t cep = models.CharField(max_length=15, verbose_name='CEP') 
 
\t address = models.CharField(max_length=100, verbose_name=u'Endereço') 
 
\t bairro = models.CharField(max_length=100, verbose_name='Bairro') 
 
\t city = models.CharField(max_length=100, verbose_name='Cidade') 
 
\t uf = models.CharField(max_length=50, verbose_name='Estado') 
 

 
\t class Meta: 
 
\t \t verbose_name = u'2.Endereço' 
 
\t \t verbose_name_plural = u'2.Endereço' 
 

 
class Pretensoes(models.Model): 
 
\t user = models.OneToOneField(User, default=0, null=True, blank=True, verbose_name='Nome Completo') 
 
\t cargo = models.CharField(max_length=100, verbose_name='Cargo pretendido') 
 
\t salario = models.CharField(max_length=50, verbose_name='Salario pretendido') 
 
\t cidade1 = models.CharField(max_length=50, verbose_name='Cidade 1', default=None) 
 
\t cidade2 = models.CharField(max_length=50, verbose_name='Cidade 2', default=None) 
 
\t cidade3 = models.CharField(max_length=50, verbose_name='Cidade 3', default=None) 
 
\t cidade4 = models.CharField(max_length=50, verbose_name='Cidade 4',default=None) 
 

 
\t class Meta: 
 
\t \t verbose_name = u'3.Pretensões' 
 
\t \t verbose_name_plural = u'3.Pretensões' 
 

 
class Graduation(models.Model): 
 
\t user = models.OneToOneField(User, default=0, null=True, blank=True, verbose_name='Nome Completo') 
 
\t scholarity = models.CharField(max_length=50, verbose_name='Escolaridade') 
 
\t course = models.CharField(max_length=100, verbose_name=u'Área/Curso') 
 
\t school = models.CharField(max_length=100, verbose_name=u'Instituição') 
 
\t year = models.CharField(max_length=4, verbose_name=u'Ano de conclusão') 
 
\t others = models.CharField(max_length=300, verbose_name='Outros') 
 
\t msword = models.CharField(max_length=50, verbose_name='Word') 
 
\t msexcel = models.CharField(max_length=50, verbose_name='Excel') 
 
\t msinternet = models.CharField(max_length=50, verbose_name='Internet') 
 

 
\t class Meta: 
 
\t \t verbose_name = u'4.Escolaridade' 
 
\t \t verbose_name_plural = u'4.Escolaridade' 
 

 
class Professional(models.Model): 
 
\t user = models.ForeignKey(User, default=0, null=True, blank=True, verbose_name='Nome Completo') 
 
\t company = models.CharField(max_length=100, verbose_name='Empresa') 
 
\t start = models.CharField(max_length=10, verbose_name=u'Mês de entrada') 
 
\t end = models.CharField(max_length=10, verbose_name=u'Mês de saída') 
 
\t p_city = models.CharField(max_length=100, verbose_name='Cidade') 
 
\t p_phone = models.CharField(max_length=15, verbose_name='Telefone') 
 
\t functions = models.CharField(max_length=300, verbose_name=u'Funções') 
 

 
\t class Meta: 
 
\t \t verbose_name = u'5.Profissional' 
 
\t \t verbose_name_plural = u'5.Profissional' 
 

 
class Info(models.Model): 
 
\t user = models.OneToOneField(User, default=0, null=True, blank=True, verbose_name='Nome Completo') 
 
\t info = models.TextField(verbose_name=u'Demais informações relevantes') 
 

 
\t class Meta: 
 
\t \t verbose_name = u'6.Demais informações' 
 
\t \t verbose_name_plural = u'6.Demais informações'

admin.py

# -*- coding: utf-8 -*- 
 
from django.contrib import admin 
 
from models import User, Address, Pretensoes, Graduation, Professional, Info 
 

 
# Register your models here. 
 
class UserAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'name', 
 
     'bdate', 
 
     'gender', 
 
     'cpf', 
 
     'oab', 
 
     'phone', 
 
     'email', 
 
    ] 
 

 
class AddressAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'user', 
 
     'cep', 
 
     'address', 
 
     'bairro', 
 
     'city', 
 
     'uf', 
 
    ] 
 

 
class PretensoesAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'user', 
 
     'cargo', 
 
     'salario', 
 
     'cidade1', 
 
     'cidade2', 
 
     'cidade3', 
 
     'cidade4', 
 
    ] 
 

 
    search_fields = ['cargo', 'salario'] 
 

 
class GraduationAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'user', 
 
     'scholarity', 
 
     'course', 
 
     'school', 
 
     'year', 
 
     'others', 
 
     'msword', 
 
     'msexcel', 
 
     'msinternet', 
 
    ] 
 

 
    list_filter = (
 
    \t ('scholarity'), 
 
    \t ('msword'), 
 
    \t ('msexcel'), 
 
    \t ('msinternet'), 
 
    ) 
 

 
    search_fields = ['scholarity', 'course', 'school', 'year', 'msword', 'msexcel', 'msinternet'] 
 
    
 

 
class ProfessionalAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'user', 
 
     'company', 
 
     'start', 
 
     'end', 
 
     'p_city', 
 
     'p_phone', 
 
     'functions', 
 
    ] 
 

 
class InfoAdmin(admin.ModelAdmin): 
 
    list_display = [ 
 
     'user', 
 
     'info', 
 
    ] 
 

 
admin.site.register(User, UserAdmin) 
 
admin.site.register(Address, AddressAdmin) 
 
admin.site.register(Pretensoes, PretensoesAdmin) 
 
admin.site.register(Graduation, GraduationAdmin) 
 
admin.site.register(Professional, ProfessionalAdmin) 
 
admin.site.register(Info, InfoAdmin)

回答

0

可以使用管理的新型管道:)

from django.contrib import admin 

from .models import Choice, Question 


class AddressInline(admin.StackedInline): 
    model = Address 


class UserAdmin(admin.ModelAdmin): 
    inlines = [AddressInline] 

admin.site.register(User, UserAdmin) 

你可以使用多个内联以及像外键等,试试看它是在民意调查教程https://docs.djangoproject.com/en/1.8/intro/tutorial02/

Bloop Bloop快乐djangoing!