gpt4 book ai didi

python - 用于创建父对象及其关联子对象的单个页面

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:30 24 4
gpt4 key购买 nike

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

我是 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. 对于 View 函数,除了确保在 ItemImage 对象之前保存 Item 之外,我还需要注意什么?

最佳答案

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

关于技术方面 - ModelForm 将用于 Item 模型,但您还应该使用 ItemImage 的模型表单集。参见 http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-an-inline-formset-in-a-view了解详情。

关于python - 用于创建父对象及其关联子对象的单个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com