2012-04-20 3 views
0

안녕하세요,이 의견을 내 MTTP에 삽입하려고하면이 오류가 발생합니다. MTTP-Comments가 아닌 MTTP를 사용하고 있습니다. 도와주세요!DJANGO, MTTP 설명, IntegrityError

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

그래서, 무엇에 대해? 그것은 id = 3264 인 작업 테이블에 레코드가없는 것처럼 보입니다.

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가 실제로 존재에 있는지 확인 :

그래서,이 시도.

관련 문제