Ros*_*ote 2 django orm reverse foreign-key-relationship
我有以下代码:
class Transaction(models.Model):
pass
class Shipment(models.Model):
tx = models.ForeignKey(Transaction)
sub = models.ForeignKey(Subscription)
class Subscription(models.Model):
pass
Run Code Online (Sandbox Code Playgroud)
我正在尝试在订阅和交易之间建立反向关系,如下所示:
subscription.transaction_set.all()
Run Code Online (Sandbox Code Playgroud)
我能想出的唯一方法是使用这样的假属性:
class Subscription(models.Model):
@property
def transaction_set(self):
return Transaction.objects.filter(
pk__in=[s.tx.pk for s in self.shipment_set.all()]
)
Run Code Online (Sandbox Code Playgroud)
但是现在我遇到了管理问题。我想在管理站点中使用 admin.TabularInline 列出交易。这是我的解决方案崩溃的地方。有谁有想法吗?
我还需要使用 admin.TabularInline 列出货件。
您正在通过论证寻找形式:
class Transaction(models.Model):
pass
class Subscription(models.Model):
transactions = models.ManyToManyField(Transaction, through='Shipment')
class Shipment(models.Model):
tx = models.ForeignKey(Transaction)
sub = models.ForeignKey(Subscription)
Run Code Online (Sandbox Code Playgroud)
然后:
subscription.transactions.all()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |