如何从django模板中的外键中获取一个字段?

时间:2013-08-21 20:42:40

标签: django django-models django-templates django-forms

嗨,我有这个型号:

class Mercadoria(models.Model):
    idmercadoria = models.IntegerField(verbose_name=u'Código', primary_key=True)
    referencia = models.CharField(verbose_name=u'Referência', max_length=30)
    descricao = models.CharField(verbose_name=u'Descrição', max_length=250)
    status = models.CharField(verbose_name=u'Status', max_length=1)

    class Meta:
        ordering = ['referencia', 'descricao']
        managed = False
        db_table = 'mercadoria'

    def __unicode__(self):
        return self.referencia + ' - ' + self.descricao

class Produto(models.Model):
    idproduto = models.IntegerField(verbose_name=u'Código', primary_key=True)
    idmercadoria = models.ForeignKey('Mercadoria', db_column='idmercadoria',
                                     verbose_name=u'Mercadoria')
    idtamanho = models.ForeignKey('Tamanho', db_column='idtamanho',
                                  verbose_name=u'Tamanho')
    idcores = models.ForeignKey('Cores', db_column='idcores',
                                verbose_name=u'Cores')
    estoqueatual = models.DecimalField(u'Estoque Atual', max_digits=18,
                                       decimal_places=4, null=False, default=0)
    saldodisponivel = models.DecimalField(u'Saldo Disponível', max_digits=18,
                                          decimal_places=4, null=False, default=0)
    codigobarra = models.CharField(verbose_name=u'Código Barras', max_length=13)
    tipoproduto = models.CharField(verbose_name=u'Tipo Produto', max_length=1)

    class Meta:
        ordering = ['idmercadoria']
        managed = False
        db_table = 'produto'

class ItensPedido(models.Model):
    idpedido = models.ForeignKey('Pedido', db_column='idpedido',
                                 primary_key=True, default=-1)
    idproduto = models.ForeignKey('Produto', db_column='idproduto')

我有一个问题是使用“ItensPedido”模型从“Mercadoria”模型中获取“referencia”字段。

问题是:这个数据库是遗留数据库,由您的ERP Delphi软件使用,而设计数据库的人,是疯了!在我的模板中,我想获得“Mercadoria”模型数据。

我试试这个:{{ itens.idproduto.idmercadoria.descricao.value }} e {{ itens.idproduto__idmercadoria__descricao.value }}但不起作用。

我尝试修改我的视图以使select_related()工作,如下所示:

def get_field_qs(field, **kwargs):
        if field.name == 'idproduto':
            field.queryset = Produto.objects.select_related()

        return field.formfield(**kwargs)

    ItensInlineFormSet = inlineformset_factory(Pedido, ItensPedido, form=PedidoItensForm,
                                               extra=1, fk_name='idpedido', formfield_callback=get_field_qs)

同样的问题..没有向我展示“mercadoria”模型的数据。

我做错了什么?

由于

0 个答案:

没有答案