0

私はプロジェクトモデルを持っています:

class Project(models.Model):
     category = models.ManyToManyField(ProjectCategory)
     designer = models.ForeignKey(User)
     name = models.CharField(max_length=255)
     description = models.TextField()
     image1 = ImageField(upload_to='.../designs/')
     image2 = ImageField(upload_to='.../designs/')
     image3 = ImageField(upload_to='.../designs/')

画像を別のモデルに分けたい:

class ProjectImages(models.Model):
     project = models.ForeignKey(Project)
     image1 = ImageField(upload_to='.../designs/')
     image2 = ImageField(upload_to='.../designs/')
     image3 = ImageField(upload_to='.../designs/')

これは正しいモデルですか?または、プロジェクトイメージをプロジェクトから区別する正しい方法は何ですか?

4

3 に答える 3

1

1つの画像フィールドで問題ありません。各プロジェクトにたくさんの画像を保存できます。

class ProjectImages(models.Model):
     project = models.ForeignKey(Project)
     image = ImageField(upload_to='.../designs/')
于 2013-03-27T11:08:05.730 に答える
1

プロジェクトごとに0からNの画像の柔軟性が必要な場合は、次のProjectImageモデルを使用する必要があります。

class ProjectImage(models.Model):
    project = models.ForeignKey(Project)
    image = ImageField(upload_to='.../designs/')
于 2013-03-27T11:09:20.060 に答える
1

OneToOneではなく関係が必要な場合がForienkeyあるため、モデルは次のようになります。

class ProjectImages(models.Model):
     project = models.OneToOneField(Project)
     image1 = ImageField(upload_to='.../designs/')
     image2 = ImageField(upload_to='.../designs/')
     image3 = ImageField(upload_to='.../designs/')

これは、プロジェクトごとの画像の数が3(またはユーザーが決定した数)に固定されている場合に適しています。


可変数の画像が必要な場合は、次のようにモデルを作成できます。

class ProjectImages(models.Model):
     project = models.ForeignKey(Project)
     image = ImageField(upload_to='.../designs/')
     sequence_num = IntegerField()

必要な数だけ追加してProjectImages指定sequence_numできます(必要な場合)。

于 2013-03-27T11:09:46.990 に答える