Django在另一个模型的

时间:2017-12-12 17:03:27

标签: python django django-rest-framework

这里有一个Django新手。我搜索过但无法找到问题的答案(或者我不知道要查找的正确关键字) 我有一个模型,除了PK-

之外还有一个独特的列
class RegEntry(models.Model):
id = models.AutoField(primary_key=True)
product = models.ForeignKey('data.Product', on_delete=models.PROTECT)
account_id = models.CharField(max_length=64)
nominee_name = models.CharField(max_length=128)
nominee_id = models.CharField(max_length=128)
nominee_account_id = models.CharField(max_length=64, null=True)
address = models.CharField(max_length=255, null=True

objects = RegisterQuerySet.as_manager()

class Meta:
    unique_together = (('date', 'product', 'nominee_id'),)
    index_together = (
        ('nominee_id', 'date'),
        ('product', 'date'),
    )
    ordering = ['date', 'product', 'nominee_id']

我有另一个基于之前模型的模型并拥有它自己的PK -

class Attribute(models.Model):
id = models.AutoField(primary_key=True)
date = models.DateField(db_index=True)
product = models.ForeignKey('data.Product', on_delete=models.PROTECT)
nominee_id = models.CharField(max_length=255)
beneficiary_name = models.CharField(max_length=128)

class Meta:
    unique_together = (('date', 'product', 'nominee_id', 'beneficiary_name'),)
    index_together = (
        ('date', 'product', 'nominee_id'),
        ('is_processed',)
    )
    ordering = ['date', 'product', 'nominee_id', 'beneficiary_name']

我需要使用ModelForm和相关模板显示Attribute模型,还需要显示产品名称和提名名称。我到了可以渲染模型表格的部分,但无法找出链接部分。非常感谢专家提出的任何建议。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题,如果我使用.extra()方法和SQL where子句,我可以得到我想要的结果。 关于使用extra的博客和示例是我最终关注的内容 - https://micropyramid.com/blog/how-to-filter-a-django-queryset-using-extra/

我尚未测试此解决方案的性能,目前我们的数据集很小,我已经检查过了解这个特定的表只会在任何给定的时间点都有一些记录。