当我尝试将此评论插入我的MTTP时,我收到此错误。我使用MTTP而不是MTTP-Comments。请帮忙!
IntegrityError at /tasks/3264/
(1452, 'Cannot add or update a child row: a foreign key constraint fails
(`taskdb`.`tasks_comment`, CONSTRAINT `task_id_refs_id_1c5648d2` FOREIGN KEY
(`task_id`) REFERENCES `tasks_task` (`id`))')
我的模特是:
class Task(models.Model):
class Meta:
app_label = 'tasks'
ordering = ('taskid',)
# meta
taskid = models.IntegerField(default=0, db_index=True)
def __unicode__(self):
return u'%s' % self.taskid
class Comment(MPTTModel):
task = models.ForeignKey(Task)
author = models.CharField(max_length=60)
comment = models.TextField()
added = models.DateTimeField(default=datetime.now)
# a link to comment that is being replied, if one exists
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by=['added']
我的观点是:
if request.POST:
comment = Comment(
author=request.POST['author'],
comment=request.POST['comment'],
task_id='3264',
)
comment.save()
我的HTML是:
<form action="" method="post">
<input type="text" value="" name="author">
<textarea name="comment"></textarea>
<input type="submit" value="Add comment"> </form>
答案 0 :(得分:0)
那么,问题是什么?在id表为3264的任务表中似乎没有记录。
答案 1 :(得分:0)
在评论创建中放置任务ID并不是一个好主意。 您需要先获取Task实例。
所以,试试这个:
from django.shortcuts import get_object_or_404
task = get_object_or_404(Task, pk=3264)
comment = Comment.objects.create (
author=request.POST['author'],
comment=request.POST['comment'],
task=task,
)
并检查具有此ID的任务是否确实存在。