在一个表单中创建具有多个模型的可编辑模板

Posted

技术标签:

【中文标题】在一个表单中创建具有多个模型的可编辑模板【英文标题】:Create editable Template with multiple models in one form 【发布时间】:2014-11-16 13:55:08 【问题描述】:

我阅读了很多表格。 我想编辑用户信息,但用户信息存在两个模型。

One model this:

class Tc(LoginUser):
    link = models.CharField(max_length=100)
    name = models.CharField(max_length=50, unique=True)
    contact = models.OneToOneField(Contact, blank=True, null=True)
    def __str__(self):
        return self.name

第二个:

class Contact(models.Model):
    contact_id = models.AutoField(primary_key=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    def __str__(self):
        return self.email

现在我想编辑“联系人”字段。 它应该被控制,如果一个联系人存在,如果没有,那么创建一个新的。如果有一个现有的,然后更新它。

我的问题是,我必须使用两种形式,但我不知道具体如何。

【问题讨论】:

您可以在 django 站点 docs.djangoproject.com/en/dev/topics/forms/modelforms/… 上阅读有关 modelforms 的信息 【参考方案1】:

您需要查询:处理联系人并了解您需要Making queries的现有联系人 .如果您有一个unique 联系对象,例如check_name,作为检查现有对象的提示,您可以使用以下方法:

from models import Contact

contats=contact.objects.all()
for n in contacts:
   if n.first_name == check_name()
   #do something
   else:
   #do something

【讨论】:

以上是关于在一个表单中创建具有多个模型的可编辑模板的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2010 上的可编辑文本框 - 行为正确吗?

如何在 WordPress 页面中创建不同的可编辑部分?

如何在 Swift IOS 中创建具有多个堆栈视图的可滚动堆栈视图

如何在 Django 中创建用于编辑的填充表单

使用 CBV 在 Django 中的一个视图/模板中的两个模型表单

CakePHP 2.4 中同一模型的多个编辑表单