DJANGO、MTTP评论、IntegrityError

DJANGO、MTTP评论、IntegrityError,django,comments,Django,Comments,嗨,我在尝试将此评论插入MTTP时遇到此错误。我使用的是MTTP,而不是MTTP注释。请帮忙 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`) REF

嗨,我在尝试将此评论插入MTTP时遇到此错误。我使用的是MTTP,而不是MTTP注释。请帮忙

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>


那个么,问题是什么呢?任务表中似乎没有id=3264的记录。

将任务id放入注释创建中不是一个好主意。 您需要在之前获取任务实例

那么,试试这个:

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的任务是否确实存在