【问题标题】:Having more than one PDF field on a table in Django在 Django 中的一张表上有多个 PDF 字段
【发布时间】:2013-12-09 23:39:37
【问题描述】:

我正在将手动管理员作为一个大项目的一部分。每本手册都有一个品牌、一个型号,并且至少有一个 PDF。

从 django.db 导入模型

class Manual(models.Model):
    brand = models.CharField(max_length=255)
    model = models.CharField(max_length=255)
    manual = models.ImageField(upload_to='pdf')

两个问题:

  • 如何建模 PDFField 或通用字段,而不是 Image 字段?
  • 手动字段是否可以有多个文件而不必制作另一个表?

谢谢!

【问题讨论】:

  • 为什么不使用 FileField?如果您需要在每个手册中有多个 pdf,请在另一个表中使用一对多关系作为 ForeignKey。拥有多个模型并没有错。
  • 您为什么不将其添加为回复,以便我接受并给予您信任?
  • 当然,我已经添加了一个更详细的答案。

标签: django pdf database-design


【解决方案1】:

如果您需要在每个手册中有多个 pdf,请使用一对多关系作为另一个表中的 ForeignKey。拥有多个模型并没有错。

class Manual(models.Model):
    brand = models.CharField(max_length=255)
    model = models.CharField(max_length=255)

class ManualPDF(models.Model):
    manual = models.ForeignKey(Manual)
    pdf = models.FileField(upload_to='pdf')

在您的视图代码(或表单或模型代码)中,您可以使用 _set 获取手册的所有 PDF,这将返回 ManualPDF 模型对象的 QuerySet:

some_manual = Manual.objects.get(id=1)
some_manual_pdfs = some_manual.manualpdf_set.all()

官方 Django 文档中有更多信息:

https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_one/

【讨论】:

    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 2018-11-11
    相关资源
    最近更新 更多