DJANGO、MTTP评论、IntegrityError
嗨,我在尝试将此评论插入MTTP时遇到此错误。我使用的是MTTP,而不是MTTP注释。请帮忙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
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的任务是否确实存在