Создание экземпляров комментариев в Django для миграции?

В настоящее время у меня есть куча старых комментариев, которые мне нужно перенести на django.contrib.comment, и я планировал вручную создать экземпляры комментариев, а затем сохранить их следующим образом:

# assume some_content is NOT a django Comment instance, but in some proprietary format
# assume the model I'm attaching the comment to is called Blog i.e models.Blog
c = Comment()
c.user = user
c.submit_date = some_comment.comment_date_time
c.comment = some_comment.comment
... 
c.save()

Основная проблема заключается в недостающей информации, найденной в классе BaseCommentAbstractModel, найденной в django.contrib.comment.model. В частности, три поля:

BaseCommentAbstractModel(models.Model):
    # Content-object field
    content_type   = models.ForeignKey(ContentType,
        verbose_name=_('content type'),
        related_name="content_type_set_for_%(class)s")
    object_pk      = models.TextField(_('object ID'))
    content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk")

Я прочитал документацию и, насколько мог, исходный код, но он не был достаточно подробным. Как правильно указать эти поля из объекта модели (model.Blog)?

Может быть, где-то есть метод, который принимает объект модели и добавляет содержимое комментария?


person GoogleDroid    schedule 08.06.2011    source источник


Ответы (1)


Из документации:

  • set the content_type to an instance of ContentType of your model (the one you're attaching the comment to):

    content_type = ContentType.objects.get_for_model(Blog)

  • установите object_pk в первичный ключ вашего объекта:

    object_pk = myBlog_instance.pk

  • content_object будет указывать на эти 2 поля, вам не нужно его устанавливать.

person manji    schedule 08.06.2011