2017-12-12 11 views
0

Django初心者はここにあります。私はPK-Djangoは別のモデルのテンプレート内の1つのモデルのフィールドを一意に表示します

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と関連するテンプレートを使用して属性モデルを表示する必要がなく、製品名と候補者名を表示する必要があります。私はModel Formをレンダリングできる部分に到達しましたが、リンク部分を理解できませんでした。ここの専門家の助言には非常に感謝しています。

+0

プライマリキーフィールドを定義する必要はありません。https://docs.djangoproject.com/es/2.0/topics/db/models/#automatic-primary-key-fields –

+0

レンダリング時の問題点あなたのフォーム? 「連結部分」とは何ですか? –

+0

@guillermochamorro - 属性の詳細を表示するだけでなく、対応するRegEntryレコードを表示する必要があります。これらの2つのモデル間のリンクは、「日付」、「製品」、「候補」フィールドです。 各属性レコードについて、どのようにしてRegEntryレコードを取得できますか?ありがとう! – Gayathri

答えて

0

これを解決するには、.extra()メソッドとSQL where節を使用すれば、私は必要な結果を得ることができます。 https://micropyramid.com/blog/how-to-filter-a-django-queryset-using-extra/

を、私は、まだパフォーマンスのため、この解決策をテストしていませんが、現在、私たちのデータセットが小さく、私は持っているだろう、この特定のテーブルを理解することが確認されている - 余分な使用にこのブログとの例では、私は、次のことになったものです任意の時点でのレコードの一握り。

関連する問題