在我的postgressql
数据库中,我有表:
class Topic(models.Model):
Definition = models.TextField(default='Definition')
Name = models.TextField(default='Name')
def __str__(self):
return self.Name
class Question(models.Model):
Statement = models.TextField(default='Question')
def __str__(self):
return self.Statement
class Planit_location(models.Model):
Planit_location = models.CharField(max_length=255, default='Planit_location')
def __str__(self):
return self.Planit_location
class ClientDetail(models.Model):
Sector = models.ForeignKey(Sector, on_delete=models.CASCADE)
Client_name = models.CharField(max_length=255, default='Client_name')
def __str__(self):
return self.Client_name
class Response(models.Model):
Question = models.ForeignKey(Question, on_delete=models.CASCADE)
Topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
Response = models.TextField(default='Response')
Client = models.ForeignKey(ClientDetail, on_delete=models.CASCADE)
Planit_Location = models.ForeignKey(Planit_location, on_delete=models.CASCADE)
Image = models.ForeignKey(Image, on_delete=models.CASCADE)
def __str__(self):
return self.Response
我想使用所有这些表创建一个modelform
,这样我就可以向我的数据库添加新的问题和回答,然后这些问题和回答链接到主题、位置和客户机(这3个将是来自db
中数据的dropdownlist
)
我已经设法创建了一个modelform
用于提问和回答,但是当我试图提交它时,我得到了"null value in column "Question_id" violates not-null constraint"
代码如下:
if request.method == 'POST':
qform = QuestionForm(request.POST)
rform = ResponseForm(request.POST)
if qform.is_valid() and rform.is_valid():
qf = qform.save()
rf = rform.save()
return render(request, 'app/adddatatest.html', {
"qform": QuestionForm(),
"rform": ResponseForm(),
})
检查视图中的is\ u valid()后,请执行以下操作:
如果不指定外键问题,则无法保存响应对象。所以在
rform.save
中,传递参数commit=False
到目前为止还没有实际将其保存到数据库中。然后将外键的值添加到新创建的响应对象中,外键是必需的,否则您将得到IntegrityError
。最后保存到数据库相关问题 更多 >
编程相关推荐