2012-04-20 17 views
0

こんにちは私はこのコメントを自分のMTTPに挿入しようとするとこのエラーが発生します。私はMTTPを使用していますが、MTTPを使用していません。助けてください!DJANGO、MTTP Comments、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をコメント作成に入れることはお勧めできません。 前にタスクインスタンスを取得する必要があります。

ので、この試してみてください。

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のタスクが実際に存在するかどうかを確認します。

関連する問題