estrutura do modelo Django para muitos para muitos relasionship baseado em terceiro modelo

votos
1

Actualmente tenho três modelos:

class Request(models.Model):
    requester=models.CharField()
    dateRequested = models.DateField(auto_now=True)
    title= models.CharField(max_length=255)
    description = models.TextField()

class RequestType(models.Model):
    requestType=models.CharField('Request Type', max_length=256)

class RequestTypeInfo(models.Model):
    requestType=models.ForeignKey('RequestType', verbose_name='Request Type')
    title = models.CharField('title', max_length=256)
    info = models.CharField(max_length=256, blank=True)

A idéia é que cada pedido mostra a informação comum a todos os tipos de solicitações e campos adicionais são apresentados aos usuários a serem preenchidos de acordo com o tipo de solicitação selecionado.

Como eu poderia mudar os modelos para permitir isso e como eu iria escrever a fim de exibir o formulário para o usuário para que as informações adicionais são apresentadas em linha com o pedido de base. Seria melhor ter uma segunda visão que pede a informação adicional.

O objetivo final é que os administradores podem criar novos tipos de solicitação sem criar modelos em python apenas adicionando um novo pedido e adicionar todos os campos de informação adicionais.

Publicado 02/04/2009 em 16:19
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Então você está dizendo que você deseja criar um relacionamento muitos-para-muitos de Solicitação para RequestTypeInfo usando RequestType como seu modelo intermediário?

class Request(models.Model):
    requester=models.CharField()
    dateRequested = models.DateField(auto_now=True)
    title= models.CharField(max_length=255)
    description = models.TextField()
    request_type = models.ManyToManyField(RequestType, through='RequestTypeInfo')

class RequestType(models.Model):
    requestType=models.CharField('Request Type', max_length=256)

class RequestTypeInfo(models.Model):
    requestType=models.ForeignKey('RequestType', verbose_name='Request Type')
    title = models.CharField('title', max_length=256)
    info = models.CharField(max_length=256, blank=True)

Podemos falar sobre modelos de administração em linha após isso fica esclarecido.

Respondeu 02/04/2009 em 17:54
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more