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