14

modelSchoolと別の modelがあるとしStudentます。

class Student(models.Model):
   school = models.ForeignKey(School)
   name = models.CharField(max_length=100)

admin で学校をクリックすると、学校モデルのフィールドと値を示す新しいページが表示されます。

また、そのページ自体で既に利用可能な学生のリストを選択したいと考えています。

インラインは異なり、その学校に属する新しいレコード (学生) を作成および編集することができます。しかし、私はそれを望んでいません。すでに多くの生徒の記録が利用可能であると仮定しましょう。その学校のモデルページから管理者でそれらを選択できるはずです。

4

4 に答える 4

0

特定のSchoolインスタンスについて、その学校に関連するすべての生徒のリストを取得できるようにしたいということですか?

その場合、related_name指定した ForeignKey リレーションシップの属性を使用します。あなたがする場所を定義してrelated_nameいません:

school = models.ForeignKey(School)

これは問題ありません。子クラス (学生) の名前の後に _set が続くデフォルトの関連名を使用するだけです。

あなたの学校のインスタンスの場合:

school = School.objects.get(pk=1)
students = school.student_set.all()  # or .filter() or .exclude() etc

次に、その学生クエリセットをテンプレートに渡すことができます。

于 2013-08-29T08:09:02.490 に答える
0

インラインの「追加」権限を無効にすることができます。InlineModelAdminを参照してください

于 2013-08-29T10:21:59.513 に答える