为一个类创建两个ForeignKey

时间:2015-05-13 23:39:07

标签: python django orm foreign-keys

我在这个模型类中遇到了这个问题。

class Transferencia(models.Model):
    descripcion = models.CharField(max_length=200)
    importe = models.FloatField()
    tipo = models.ManyToManyField(Tipo)
    cuentaOrigen = models.OneToOneField(Cuenta)
    cuentaDestino = models.OneToOneField(Cuenta)
    monedaReferencia = models.ForeignKey(Moneda)
    fechaApunte = models.DateTimeField('date published')
    factura = models.ForeignKey(Factura)
    def __str__(self):
        return "Importe: " + self.importe

我发现了这个错误

ERRORS: walletGestor.Transferencia.cuentaDestino: (fields.E304) Reverse accessor for 'Transferencia.cuentaDestino' clashes with reverse accessor for 'Transferencia.cuentaOrigen'.  HINT: Add or change a related_name argument to the definition for 'Transferencia.cuentaDestino' or 'Transferencia.cuentaOrigen'. walletGestor.Transferencia.cuentaDestino: (fields.E305) Reverse query name for 'Transferencia.cuentaDestino' clashes with reverse query name for 'Transferencia.cuentaOrigen'.     HINT: Add or change a related_name argument to the definition for 'Transferencia.cuentaDestino' or 'Transferencia.cuentaOrigen'. walletGestor.Transferencia.cuentaOrigen: (fields.E304) Reverse accessor for 'Transferencia.cuentaOrigen' clashes with reverse accessor for 'Transferencia.cuentaDestino'.  HINT: Add or change a related_name argument to the definition for 'Transferencia.cuentaOrigen' or 'Transferencia.cuentaDestino'. walletGestor.Transferencia.cuentaOrigen: (fields.E305) Reverse query name for 'Transferencia.cuentaOrigen' clashes with reverse query name for 'Transferencia.cuentaDestino'.  HINT: Add or change a related_name argument to the definition for 'Transferencia.cuentaOrigen' or 'Transferencia.cuentaDestino'.

System check identified 4 issues (0 silenced).

请帮助我,我需要确定原始帐户和命运帐户。

这是课程帐户

class Cuenta(models.Model):
    nombreCuenta = models.CharField(max_length=200)
    tipoCuenta = models.CharField(max_length=200)
    importeInicial = models.FloatField()
    excluirEstadisticas = models.BooleanField()
    def __str__(self):
        return self.nombreCuenta +": " + self.importeInicial

由于

1 个答案:

答案 0 :(得分:1)

很明显,您需要添加related_name attribute

cuentaOrigen = models.OneToOneField(Cuenta, related_name="cuentaOrigen")
cuentaDestino = models.OneToOneField(Cuenta, related_name="cuentaDestino")