私はDJangoを新しくしました。Django子テーブルの外部キーを扱う方法
> -CRP
> - SubComponents of a CRP
> - Objectives of a SubComponent of a CRP.
I次のモデルがあります:私は3つのテーブルを持つデータベースを持っている
class period(models.Model):
period_code = models.IntegerField(primary_key=True,verbose_name='Period code')
period_desc = models.CharField(max_length=45,verbose_name='Period description')
period_current = models.IntegerField(verbose_name='Current period')
def __unicode__(self):
return self.period_desc
class Meta:
db_table = 'period'
class crp(models.Model):
crp_code = models.CharField(max_length=3,primary_key=True,verbose_name='CRP code')
crp_desc = models.CharField(max_length=45,verbose_name='CRP description')
def __unicode__(self):
return self.crp_desc
class Meta:
db_table = 'crp'
class subcomponent(models.Model):
crp_code = models.ForeignKey(crp,db_column='crp_code',related_name='subcomponent_crp_code',to_field='crp_code',primary_key=True,verbose_name='CRP code')
subc_code = models.CharField(max_length=3,primary_key=True,verbose_name='SubComponent Code')
subc_desc = models.CharField(max_length=45,verbose_name='SubComponent Description')
def __unicode__(self):
return self.subc_desc
class Meta:
db_table = 'subcomponent'
class objective(models.Model):
crp_code = models.ForeignKey(subcomponent,db_column='crp_code',related_name='objective_crp_code',to_field='crp_code',primary_key=True,verbose_name='CRP code')
subc_code = models.ForeignKey(subcomponent,db_column='subc_code',related_name='objective_subc_code',to_field='subc_code',primary_key=True,verbose_name='SubComponent Code')
obj_year = models.ForeignKey(period,db_column='obj_year',related_name='objective_obj_year',to_field='period_code',primary_key=True,verbose_name='Objective year')
obj_code = models.CharField(max_length=7,primary_key=True,verbose_name='Objective code')
obj_desc = models.CharField(max_length=45,verbose_name='Objective description')
def __unicode__(self):
return self.obj_desc
class Meta:
db_table = 'objective'
すべてが "サブコンポーネント" モデル(CRP参照)のために正常に動作します。 「サブコンポーネント」の管理では、ユーザーはCRPをプルダウンしてサブコンポーネントを追加することができます。
ただし、モデル "objective"はモデル "サブコンポーネント"を参照します。 "客観的"の管理では、ユーザーがCRPをプルダウンして選択し、そのCRPのサブコンポーネントをプルダウンリストでフィルタリングしたいと思います。これどうやってするの?
多くのありがとう、 カルロス。
あなたはajaxまたは複数のステップ形式を使用する必要があります。ドロップダウンリストで項目を選択するなどのHTMLアクションから、サーバーとのデータ交換は行われません。 –