如何使用modelForms在同一窗体中使用两个以上的模型?

2024-09-29 21:58:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Django创建一个新的应用程序,我的应用程序需要一个表单来在db上添加数据。我使用的是4个型号,都是用外键连接的。如何使用模型表单将数据输入表单并直接添加到数据库中,如果不可能,我的方法应该是什么?你知道吗

我检查了现有的解决方案,这是两个模型只,我找不到一个办法来调整它,以我自己的问题。我尝试使用inlineformset但是正如我所说的,我不知道如何将所有模型一起实现它。你知道吗

我也查看了Django文档好几次,但都没有找到这种类型的东西(可能我遗漏了)。你知道吗

我的模型是这样的:

class Question(models.Model):
    year = models.CharField(max_length=5)
    source = models.CharField(max_length=140)
    problemNumber = models.CharField(max_length=16)
    weblink = models.CharField(max_length=200)
    date_posted = models.DateTimeField(default=timezone.now)
    problemStatement = models.TextField()
    author = models.ForeignKey(User, on_delete=models.PROTECT)

class QLevel(models.Model):
    qID = models.ForeignKey(Question, on_delete=models.CASCADE)
    level = models.CharField(max_length=16)

class QMethod(models.Model):    
    qID = models.ForeignKey(Question, on_delete=models.CASCADE)
    method = models.CharField(max_length=40)

class QSubject(models.Model):
    qID = models.ForeignKey(Question, on_delete=models.CASCADE)
    subject = models.CharField(max_length=35)

可以看出,其中3个模型通过外键连接到问题模型,而列表问题模型连接到用户。你知道吗

我有一个简单的表单,我基本上输入了所有需要的信息(所有给定的字段),并希望它直接将它们提供给db。如果这是可能的,请指导我,如果没有请解释为什么不和什么其他方法,我可以尝试?你知道吗

谢谢你!你知道吗


Tags: django模型表单modelonmodelsdeletelength
1条回答
网友
1楼 · 发布于 2024-09-29 21:58:27

经过一段时间的研究,我发现了一种将多个外键连接形式呈现为扩展名extra_views的最佳且最简单的方法。如果有人在寻找解决办法,我认为目前没有更好的办法。你知道吗

这里给出的解决方案django submit two different forms with one submit button也是有效的,但是如果您使用像我这样的基于模型的表单,并且使用外键,我发现这种方法非常混乱,很难使用。你知道吗

相关问题 更多 >

    热门问题