我是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']
答案 0 :(得分:0)
您的错误是试图使用ModelForm
子类,该子类仅用于创建或更新一个对象(数据库行)。
对所需的字段使用普通的forms.Form
。您必须将它们明确地编码为CharField
,EMailField
等。然后在form_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()