0

你好,我有这个模型:

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”模型的数据。

我做错了什么?

谢谢

4

0 回答 0