如何在 1 个 django 模型下保存多个文件
How to save multiple files under in 1 django model
我是 Django 的新手。我有一个模型副本(学生的考试副本),模型副本将包含学生测试或考试副本和标记,通常我会使用 FileField 并将副本保存到对象,但我的问题是副本可能包含许多文件(第 1、2、3 页等)
我正在考虑使用 CharField,它包含一个文件夹的路径,该文件夹包含该副本的文件,但我不太清楚如何做到这一点
如果您有更好的方法,我会与您分享。
这是我的模型
class VersionCopie(models.Model):
id_version = models.CharField(db_column='id_Version', primary_key=True, max_length=100)
numero_version = models.IntegerField(db_column='numero_Version', blank=True, null=True)
note_copie = models.FloatField(db_column='note_Copie', blank=True, null=True)
emplacement_copie = models.CharField(db_column='emplacement_Copie', max_length=10000, blank=True, null=True)
id_copie = models.ForeignKey('Copie', models.CASCADE, db_column='id_Copie', blank=True, null=True)
我只需要知道我要保存到什么样的路径"emplacement_copie"
嗯,我认为这是经典的 one-to-many 关系。您可能已经通过 id_copie = models.ForeignKey(...)
实现了类似的功能
您应该创建单独的模型,仅表示一个文件并包含对您的 VersionCopie 的引用。您仍然可以从 VersionCopy 模型访问所有文件,引用是隐式创建的(请参阅此 link)。
示例代码:
class VersionCopyFile(models.Model):
file = models.FileField( <your arguments> )
version_copy = models.ForeignKey(VersionCopy, on_delete=models.CASCADE)
我是 Django 的新手。我有一个模型副本(学生的考试副本),模型副本将包含学生测试或考试副本和标记,通常我会使用 FileField 并将副本保存到对象,但我的问题是副本可能包含许多文件(第 1、2、3 页等)
我正在考虑使用 CharField,它包含一个文件夹的路径,该文件夹包含该副本的文件,但我不太清楚如何做到这一点
如果您有更好的方法,我会与您分享。
这是我的模型
class VersionCopie(models.Model):
id_version = models.CharField(db_column='id_Version', primary_key=True, max_length=100)
numero_version = models.IntegerField(db_column='numero_Version', blank=True, null=True)
note_copie = models.FloatField(db_column='note_Copie', blank=True, null=True)
emplacement_copie = models.CharField(db_column='emplacement_Copie', max_length=10000, blank=True, null=True)
id_copie = models.ForeignKey('Copie', models.CASCADE, db_column='id_Copie', blank=True, null=True)
我只需要知道我要保存到什么样的路径"emplacement_copie"
嗯,我认为这是经典的 one-to-many 关系。您可能已经通过 id_copie = models.ForeignKey(...)
您应该创建单独的模型,仅表示一个文件并包含对您的 VersionCopie 的引用。您仍然可以从 VersionCopy 模型访问所有文件,引用是隐式创建的(请参阅此 link)。
示例代码:
class VersionCopyFile(models.Model):
file = models.FileField( <your arguments> )
version_copy = models.ForeignKey(VersionCopy, on_delete=models.CASCADE)