私は、DeviceModelとDeviceの2つのモデルを持つDjangoデータベースを持っています。たとえば、DeviceModelオブジェクトが「LCDパネル」であり、Deviceオブジェクトが「LCDパネル№547」であるとします。したがって、これら2つのテーブルにはManyToOne関係があります。Djangoの複雑な "limit_choices_to"機能
class DeviceModel(models.Model):
name = models.CharField(max_length=255)
class Device(models.Model):
device_model = models.ForeignKey(DeviceModel)
serial_number = models.CharField(max_length=255)
ここで、DeviceModelオブジェクト間にリレーションシップを追加する必要があります。たとえば、 "LCD Panel"は "Tablet"オブジェクトまたは "Monitor"オブジェクトにあります。また、別のオブジェクトは個別オブジェクトである可能性があるため、他のオブジェクトとはリンクしません。
私はManyToMany関係でこれを行うことにしました.JSONなどでシリアライズを使用することに反対しました(btw、どのような状況でより良い方法がありますか?)。
私はデバイスモデル間のすべての関係を満たしており、デバイステーブルに機能関係を追加する必要があることを知っています。
そのために、「self」を指す「master_dev」外部キーフィールドを追加しました。それは私が必要とするように正確に動作しますが、私はdjangoの管理パネルで出力を制限したいです。 device_linksで接続されているデバイスのみが表示されます。現在のコード:だから
class DeviceModel(models.Model):
name = models.CharField(max_length=255)
device_links = models.ManyToManyField('self')
class Device(models.Model):
device_model = models.ForeignKey(DeviceModel)
serial_number = models.CharField(max_length=255)
master_dev = models.ForeignKey('self', blank=True, null=True)
、どのように私は、管理パネルでmaster_devフィールドの出力を制限することができますか? forms.pyで
を、私は、私はuが:)を行うと信じてDjangoの管理パネル – kostr22
で出力を制限する必要がありますか? –
私のプロジェクトでは、このフォームなどを使用しますが、私のDjanjo管理パネルも明確で簡単に編集できます。 – kostr22