【问题标题】:Creating front-end forms like in Django Admin在 Django Admin 中创建前端表单
【发布时间】:2014-08-27 04:16:02
【问题描述】:

我很好奇是否有办法在前端复制 Django 管理界面——特别是添加对象时的表单……这是我的场景:

class Area(models.Model):
    name = models.CharField(max_length=100)

class SubArea(models.Model):
    name = models.CharField(max_length=100)
    area = models.ForeignKey(Area)

class Product(models.Model):
    name = models.CharField(max_length=150)
    area = models.ForeignKey(Area, null=True, blank=True)
    subarea = models.ForeignKey(SubArea, null=True, blank=True)

因此,如果我在 Product 模型的前端设置表单,我将无法添加 Area 或 SubArea 对象。但是,在 Django 管理中,我可以通过单击字段旁边的“+”轻松添加这些对象。

我正在寻找最简单的解决方案(同时仍然是安全的),以允许在前面创建外键,而无需设置单独的表单。不确定如果这是否可能,但想向社区寻求建议。

谢谢! J

【问题讨论】:

  • 不太清楚你在这里问什么。管理员是用 Django 编写的,因此您自己的代码中可能存在的任何事情都是可能的。但是单击 + 按钮所做的只是弹出一个显示“添加区域”表单的窗口,您可以轻松地复制它,确定吗?
  • 谢谢丹尼尔 - 我知道这个可以手动添加,但我很好奇是否有一种方法可以像使用 {{ form.as_p }} 一样简单- 基本上让 Django 处理表单输出,而无需编写大量额外代码来实现相同的功能。

标签: python django django-forms


【解决方案1】:

Django admin 广泛使用表单集,见下文:

https://docs.djangoproject.com/en/1.6/topics/forms/formsets/

关于在 Django 管理员中添加“+”的查询,您可以使用 RelatedFieldWidgetWrapper 来实现这一点,您可以找到 here

【讨论】:

    【解决方案2】:

    根据我的经验,在前端的表单上添加、编辑、更新相应(相关)项目的最简单方法,就像在 django-Admin 中一样,是使用 "django-addanother",您可以从 @ 使用它987654322@。这个问题的简单、快速和干净的解决方案,它也适用于 Django 1.11。它有很好的文档,也有演示。

    【讨论】:

      【解决方案3】:

      django-form-admin(..让输入更多字符stackoverflow需要30个答案)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        • 2020-04-13
        • 2013-05-15
        • 2016-11-06
        • 1970-01-01
        • 2012-04-19
        相关资源
        最近更新 更多