如何按事件过滤整个管理员?

时间:2015-08-06 07:01:59

标签: python django

我创建了一个事件栏库存移动,因此我使用了以下模型:

class Evento(Model): #Event Model
    class Meta:
        verbose_name = _(u"Evento")
        verbose_name_plural = _(u"Eventos")
    autor            = ForeignKey(User, null=True, blank=True)
    titulo           = CharField(max_length=200, verbose_name=_(u"Nome do Evento"))
    #image           = ImageField(upload_to=upload_to('event/', 'title'), null=True, blank=True, verbose_name=_(u"Imagem"), help_text=_(u"Imagem que aparecerá no bloco."))
    #crop            = CharField(choices=CORTE, max_length=200, null=True, blank=True, verbose_name=_(u"Cortar Imagem"), help_text=_(u"Selecione o ponto de referência para cortarmos a imagem."))
    onde               = CharField(max_length=200, verbose_name=_(u"Cidade"), help_text=_(u"Cidade do evento, exemplo. Uberlândia - MG"), null=True, blank=True)
    telefone           = CharField(max_length=200, verbose_name=_(u"Telefone de Contato"), null=True, blank=True)
    contato         = CharField(max_length=200, verbose_name=_(u"Nome do Contato"), null=True, blank=True)
    inicio           = DateField(help_text=_(u"Preencha com o dia exato do evento"), verbose_name=_(u"Dia do evento"), null=True, blank=True)
    fim             = DateField(null=True, blank=True, help_text=_(u"Preencha com o dia exato de término do evento"), verbose_name=_(u"Dia que acaba"),)
    ativo           = BooleanField(default=True, verbose_name=_(u"Ativo"))
    slug            = SlugField(verbose_name=_(u'Slug / URL'), blank=True, null=True)
    def __unicode__(self): return u'%s'%self.titulo

class Cliente(Model): #Client Model (with card number)
    class Meta:
        verbose_name = _(u"Cliente")
        verbose_name_plural = _(u"Clientes")
    evento          = ForeignKey(Evento, verbose_name=_(u"Evento"), help_text=_(u"A qual evento esse cliente pertence?"))
    nome            = CharField(max_length=200, verbose_name=_(u"Nome Completo"),)
    cartao          = IntegerField(verbose_name=_(u"Número do Cartão"))
    telefone        = CharField(max_length=200, verbose_name=_(u"Telefone de Contato"), help_text=_(u"Somente numeros, exemplo: 3488888888"))
    rg              = IntegerField(help_text=_(u"Preencha somente os números"), verbose_name=_(u"Número do RG"),)
    ativo           = BooleanField(default=True, verbose_name=_(u"Ativo"))
    slug            = SlugField(verbose_name=_(u'Slug / URL'), blank=True, null=True)
    def __unicode__(self): return u'%s - %s (%s)'% (self.cartao, self.nome, self.evento.titulo)
    def clean(self, *args, **kwargs):
        cartoes = self.__class__.objects.filter(cartao=self.cartao, evento=self.evento)
        if cartoes:
            raise ValidationError('CARTÃO DUPLICADO, FAVOR VERIFICAR A NÚMERAÇÃO INSERIDA.')
        super(Cliente, self).clean(*args, **kwargs)

class Produto(Model): #Product (with code number)
    evento          = ForeignKey(Evento, verbose_name=_(u"Evento"), help_text=_(u"Em qual evento esse produto será utilizado?"))
    nome            = CharField(max_length=200, verbose_name=_(u"Nome do Produto"),)
    codigo          = IntegerField(verbose_name=_(u"Código de Barras"), null=True, blank=True)
    preco_custo     = FloatField(verbose_name=_(u"Preço de Custo"))
    preco_venda     = FloatField(verbose_name=_(u"Preço de Venda"))
    def __unicode__(self): return u'%s'%self.nome

TIPO_MOVIMENTACAO = (

    (1, _(u'Saida de Produto')),
    (2, _(u'Entrada de Produto')),
)

class Movimentacao(Model): #Movement (out/in) 
    class Meta:
        verbose_name = _(u"Movimentação")
        verbose_name_plural = _(u"Movimentações")
    tipo                 = SmallIntegerField(choices=TIPO_MOVIMENTACAO, verbose_name=_(u"Tipo"), help_text=_(u"Entrada ou Saída"), default=1)
    evento               = ForeignKey(Evento, verbose_name=_(u"Evento"), help_text=_(u"Para qual evento essa movimentação está sendo feita?"))
    cliente              = ForeignKey(Cliente)
    hora_movimentacao    = DateTimeField(null=True, blank=True, default=datetime.now(), help_text=_(u"Data exata da movimentação"), verbose_name=_(u"Data da Movimentação"))

所以我是一个移动模型,我将插入Type(输入/输出),事件(因为它将处理超过1个事件),客户端卡号。

enter image description here

所以我正在做的是使用django-selectable来选择客户卡代码,无论如何我返回所有代码而不是evento,因此我意识到我需要选择&# 34;事件"对于每个模型页面,因为所有内容都链接到"事件" (客户,运动)。

然后,我的问题是:如何设置一个会影响所有模型选择的配置?例如,登录后我会选择" Iron Maiden Cover"然后,当我去运动时,它将被预选,对于所有带有"事件"的模型都是如此。领域。

0 个答案:

没有答案