【问题标题】:One single page to create a Parent object and its associated child objects用于创建父对象及其关联子对象的单页
【发布时间】:2010-05-26 06:58:13
【问题描述】:

这是我在这个很棒的网站上的第一篇文章,我从中找到了一些具有挑战性的问题的答案。向社区致敬!

我是 Django 世界的新手,所以希望在这里得到一些 Django 专家的帮助。提前致谢。


物品型号:

class Item(models.Model):
    name = models.CharField(max_length=50)

ItemImage 模型:

class ItemImage(models.Model):
    image = models.ImageField(upload_to=get_unique_filename)
    item = models.ForeignKey(Item, related_name='images')

从上面的模型定义可以看出,每个 Item 对象都可以有很多 ItemImage 对象。


我的要求如下:

  1. 允许用户使用的单个网页 在上传时创建一个新项目 与项目关联的图像。当单击页面上的“保存”按钮时,应在数据库中同时创建 Item 和 ItemImages 对象。
  2. 我在自定义配置文件中创建了一个变量,名为 NUMBER_OF_IMAGES_PER_ITEM。系统正是基于此变量生成每个项目的图像字段数。

问题:

  1. 表单和模板应该是什么样的?可以使用 ModelForm 来实现需求吗?
  2. 对于视图功能,除了确保将 Item 保存在 ItemImage 对象之前,我还需要注意什么?

【问题讨论】:

    标签: python django


    【解决方案1】:

    考虑到您正在使用文件上传字段,我不确定它是否适合 Web 应用程序。如果项目名称验证失败怎么办?如果您再次重新显示表单,所有文件上传字段都会变为空,用户必须再次填写。

    技术方面 - ModelForm 将适用于 Item 模型,但您也应该为 ItemImage 使用模型 formset。详情请见http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-an-inline-formset-in-a-view

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多