同じオブジェクトに対して、いくつかのフィールドを0〜5回繰り返すことができるモデルがあります。
models.py
:
class FusionTableLayer(models.Model):
layer_name = models.SlugField(max_length=50)
condition1 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
condition2 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
condition3 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
condition4 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
condition5 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option1 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option2 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option3 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option4 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option5 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option6 = models.CharField('SQL Query Conditions', max_length=100, blank=True)
...etc
私の質問は、複製できるフィールドを使用して2番目のモデルを作成し、ForeignKey
それらをリンクするためにを使用する方がよいですか?
models.py
:
class EzApp(models.Model):
layer_name = models.SlugField(max_length=50)
class EzAppOptions(models.Model):
app = models.ForeignKey(EzApp)
condition = models.CharField('SQL Query Conditions', max_length=100, blank=True)
option = models.CharField('SQL Query Conditions', max_length=100, blank=True
このようにきれいに見えることは知っていますが、フォーム、ビュー、およびテンプレートを、関係のある2番目のモデルで機能するように適合させるのはより複雑であることがわかりましたForeignKey
。たとえば、同じビューで2つの異なるフォームセットを管理する必要があります。この場合のベストプラクティスは何でしょうか?