0

データ集計クエリの 1 つが理解できないエラーをスローするテスト ビューがあります。誰かがこれについてコメントして、正しい方向に向けてくれれば幸いです。これは私の最初の django プロジェクトであり、学習曲線をたどっていますので、ご容赦ください。

コード:

biz_group = BusinessGroup.objects.get(group_manager=user)
group_team = BusinessGroupToTeams.objects.get(group_id=biz_group.group_id)

エラーがスローされます:

Traceback (most recent call last):
    File "<console>", line 1, in <module>
    File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 143, in get
     return self.get_query_set().get(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 394, in get
     num = len(clone)
    File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 90, in __len__
    self._result_cache = list(self.iterator())

    File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 301, in iterator
     for row in compiler.results_iter():
    File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 775, in results_iter
     for rows in self.execute_sql(MULTI):
    File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 840, in execute_sql
cursor.execute(sql, params)
    File "/usr/lib/python2.7/dist-packages/django/db/backends/util.py", line 41, in execute
     return self.cursor.execute(sql, params)
    File "/usr/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 58, in execute
     six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2])
    File "/usr/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 54, in execute
     return self.cursor.execute(query, args)
    DatabaseError: column businessgroup_to_teams.id does not exist
    LINE 1: SELECT "businessgroup_to_teams"."id", "businessgroup_to_teams"...

BusinessGroupToTeams モデルは次のようになります。

class BusinessAreaToTeams(models.Model):

    group_id = models.DecimalField(max_digits=65535, decimal_places=65535)
    team_id = models.DecimalField(max_digits=65535, decimal_places=65535)

    class Meta:
        db_table = 'businessgroup_to_teams'

「id」を照会しておらず、「id」のモデル フィールドがありません。誰かが私がここで間違っていることを説明できますか?

4

2 に答える 2

0

ここでは主キーについて言及していないため、django は自動的に主キー名 ID を作成しました。ここで、次のように主キーを作成できます。

group_id = models.DecimalField(max_digits=65535, decimal_places=65535, primary_key=True)

次に、group_id を主キーとして作成します。

于 2013-03-21T12:44:33.870 に答える
0

でクロスオーバー テーブルを定義しようとしているようですBusinessAreaToTeams。group_id と team_id を生の ID を含む DecimalFields にする代わりに、定義する必要があります。

group = ForeignKey(BusinessGroup)
team = ForeignKey(BusinessTeam)  #  guessing the model name here

これにより、テーブルに group_id および team_id フィールドが作成され、django のクエリセットを使用して簡単に関係を管理できるようになります。このトピックの紹介については、Django book の第 10 章を参照してください。

于 2013-03-21T11:29:36.827 に答える