0

私は自分が達成しようとしていることの解決策を考え出そうとしています。ジャンゴの独学の一環として、格闘技クラブのクラブ会員サイトを作成しようとしています。アプリの 1 つの一部として、2 つのクラスのモデルを提案しました。メンバーと学校。

メンバーが所属する学校をForeignKeyで参照し、学校がメンバーを参照して講師を特定するというアイデアでした。インストラクターは、彼らがインストラクターであるかどうかを識別する BooleanField を持つ単なる通常のメンバーです。

問題が次々と出てきて、それを次々と解決していくのですが、そもそも自分がやっていることが一番効率的な方法なのだろうか。

現在、メンバー モデルのその部分は次のようになっています。

instructor = models.BooleanField('Instructor?', default=False)
school = models.ForeignKey('School')

学校のクラスは次のようになります。

class School(models.Model):
SCHOOL_CHOICES = (
    ('RED', 'Redruth - Centre of Excellence'),
    ('FAL', 'Falmouth - FXU'),
    ('MEV', 'Mevagissey'),
    )

name = models.CharField(max_length=3, choices=SCHOOL_CHOICES, default='RED')
instructors = models.ForeignKey('Student', related_name='instructors', blank=True, null=True)

related_name をインストラクターの ForeignKey に追加する必要がありました。追加しないとエラーが発生しました。また、メンバーモデルの学校の ForeignKey に to_field を追加しようとしましたが、現時点では「学校オブジェクト」のコピーが 3 つしか表示されていませんが、変更されていないようです (編集: Unicode定義で修正されました)。

私がやっている方法 (ForeignKeys を使用して相互に参照する 2 つのクラス) は、それを行うための最良の方法ですか、それとも何か他のことをする必要がありますか?

曖昧ですみません(/_;)

4

1 に答える 1

1

モデル上のインストラクターをマークしているので、Memberモデル上の別の関係でそれらを識別する必要はありませんSchool。代わりに、インストラクターを取得したい場合は、特定の学校で次のようにするだけです。

instructors = Members.objects.filter(instructor=True, school=my_school)
于 2013-03-06T15:38:04.437 に答える