2016-12-21 11 views
-1

Djangoスキルを取得しようとしています。私は1つのフィールドが乗算されたクラスを持っていたいと思います。だから私は主なクラスに接続している人を複数持つことができます(将来のニーズのために)アクティブであるかどうかの選択肢があります。
だから私のサブクラスは、このようなものになります。私はリファレンスとしてそれを呼び出すしたいと思いますが、私はのために行く場合はメインクラスでDjangoを学ぶ - models.py ForeignKeyまたはManyToManyFieldまたは他の?

class Subclass(models.Model): 

    STATUS=(
    ('A', Active), 
    ('U', Unactive) 
) 
    status = modelsCharField(max_length=1, choices=STATUS) 
    name = models.CharField(some options) 

を:

field=models.ManyToManyField(Subclass) 

それは、第二のテーブルとして表現されます各エンティティごとに、そのエンティティのすべてから選択する必要があります。だからサブクラスに2k個のエンティティがある場合は、接続を見つけるためにすべてをスクロールする必要があります(デフォルトの管理ページなど)

私はそれを望みません。私が必要とするのは、adminに接続して表示されている2k個のエンティティのうち2個だけです。そして、後に、Activeのステータスを持つページがページ自体に表示されます。

だから、私はForeignKeyの関係を努める考え出し:

field=models.ForeignKey(Subclass, on_delegate=models.CASCADE) 

これはしかし、移行中に私のmissing default valuesに関するエラーが発生します。 私はちょっと立ち往生しているので、助けてください。

+0

あなたは実際に何を達成しようとしていますか?あなたのコードには多くのタイプミスや書式設定の問題もあります。メインクラス(メインモデル)は、サブクラス(サブモデル)の複数のレコードを指す必要がありますか? – nmusleh

+0

これは単なる例であり、誤植は私のものです。彼らといつも戦わなければなりません:(私の仕事は...住所録のようなものをコードすることです?あなたは人とその住所と古い住所を持っていますので、メインクラスの人、サブクラスは住所のリストです。しかし、私は関連するものだけが必要です。 –

+1

人と住所のようなものがあれば、AddressはForeignKey(Person)を持っていて、あなたの後ろにあなたを設定します。ピザとトッピングは多くのものか​​ら多くのもの(多くの異なるピザタイプのトッピング)の例です。https://docs.djangoproject.com/ja/1.10/ref/ contrib/admin /#inlinemodeladmin-objects管理者の扱い方に関するドキュメント。 – AMG

答えて

0

#AMGに大きな感謝をします。私はあなたが甘やかされたようにしました。私のmodels.pyで

class Person(models.Model): 
name = models.CharField(max_length=200, default="Name") 
phone = models.CharField(max_length=12, default="+22123456789") 
... 
class Adress(models.Model): 
... 
person = models.ForeignKey(Person, on_delete=models.CASCADE) 
... 

そして、私のadmin.py

from django.contrib import admin 
from .models import Adress 
from .models import Person 

class AdressInline(admin.TabularInline): 
model = Adress 

class PersonAdmin(admin.ModelAdmin): 
inlines = [ 
AdressInline  
] 

admin.site.register(Person, PersonAdmin) 

これは、Personオブジェクトを追加し、同じ場所にそれのためのアドレスを追加するために私をすることができます。今私がしなければならないのはリストを形作ることだけです。

関連する問題