如何在 django 的一个视图中使用多个表单

Posted

技术标签:

【中文标题】如何在 django 的一个视图中使用多个表单【英文标题】:How to use multiple form in one view in django 【发布时间】:2018-01-25 09:53:05 【问题描述】:

我是 django 新手。我创建了两个模型。

class article(models.Model):
   title = models.CharField(max_length=250)
   disc = models.TextField()
   posted = models.DateTimeField(auto_now_add=True, editable=False)
   updated = models.DateTimeField(auto_now=True)
   cat = models.CharField(max_length=100)

class category(models.Model):
   cat_id = models.ForeignKey(article, on_delete=models.CASCADE)
   cate = models.CharField(max_length=100)

我想创建一个表单模板,用户在下拉列表中选择类别,然后写入标题、光盘等并提交表单。提交表单时,数据应保存在文章模型中,所选类别也保存在 cat 字段中文章模型。

我能做什么?请给我正确和简单的方法来做到这一点。

【问题讨论】:

您是否阅读过有关使用表单的 django 文档?这应该很容易。所以试试看有没有问题 自己先尝试一下,如果遇到任何具体问题,请使用您尝试过的代码发布问题。 SO 不是为了让别人写你的代码。 【参考方案1】:

你的 models.py :

   class article(models.Model):
       title = models.CharField(max_length=250)
       disc = models.TextField()
       cat = models.ForeignKey(category, verbose_name="Category")
       posted = models.DateTimeField(auto_now_add=True, editable=False)
       updated = models.DateTimeField(auto_now=True)

    class category(models.Model):
       cate = models.CharField(max_length=100)

进行迁移以应用此修改。

我认为您只需要了解文章和类别之间的关系即可。一篇文章只能有一个类别。一个类别可以有很多篇文章。 所以文章模型必须有一个类别的外键。不是文章类别中的外键。

【讨论】:

以上是关于如何在 django 的一个视图中使用多个表单的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 django 中的单个表单中使用多个表单集,如果可以的话如何?

Django:如何将相同的功能扩展到多个视图?

如何在 Django 中访问表单提交按钮的值?

如何在 Django 中测试具有表单的视图?

如何将表单视图作为 django 中的上下文传递给另一个视图?

如何使用基于类的视图在同一模板中使用两个不同的 Django 表单