Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在一个表单中保存两个相关条目_Python_Django_Django Forms - Fatal编程技术网

Python 如何在一个表单中保存两个相关条目

Python 如何在一个表单中保存两个相关条目,python,django,django-forms,Python,Django,Django Forms,我是Django的新手,我正在创建一个简单的2页留言板应用程序(提交页面和留言板页面) 我正在为我的提交页面的表单而挣扎。在学习Django时,我决定不使用标准用户模型,而是选择创建一个与消息模型有一对一关系的模型(海报) 基本上在一种形式,我想添加一条消息和海报(外键),其中有多个字段 有可能实现我想做的事情吗 提前谢谢你的帮助 我真的不知道该尝试什么或寻找什么。我在下面包含了一些代码 Models class Poster(models.Model): full_name = mod

我是Django的新手,我正在创建一个简单的2页留言板应用程序(提交页面和留言板页面)

我正在为我的提交页面的表单而挣扎。在学习Django时,我决定不使用标准用户模型,而是选择创建一个与消息模型有一对一关系的模型(海报)

基本上在一种形式,我想添加一条消息和海报(外键),其中有多个字段

有可能实现我想做的事情吗

提前谢谢你的帮助

我真的不知道该尝试什么或寻找什么。我在下面包含了一些代码

Models
class Poster(models.Model):
    full_name = models.CharField(max_length = 50)
    phone_number = models.CharField(max_length = 15)
    email = models.EmailField()

class Message(models.Model):
    message_text = models.CharField(max_length=10000)
    created_at = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(Poster, on_delete=models.CASCADE) 



class MessageForm(forms.ModelForm):
    class Meta:
        model = Message
        fields = ['full_name', 'phone_number', 'email', 'message_text']

您的错误是试图使用仅用于创建或更新一个对象(数据库行)的
ModelForm
子类

将普通的
forms.Form
与所需的字段一起使用。您必须将它们显式编码为
CharField
EMailField
,等等。然后在
表单中使用valid
(假设您的视图是
FormView
)执行以下操作

poster = Poster()
poster.full_name = form.cleaned_data['full_name']
# ditto for phone_number and email
poster.save()
message = Message( user=poster, 
    message_text = form.cleaned_data['message_text'] )
message.save()

我想你可以使用django的inline_formset工厂,检查这里的文档()@SammyJ谢谢。我去看看。