Создание экземпляров «Комментарий» в Django для миграции? - PullRequest
0 голосов
/ 08 июня 2011

В настоящее время у меня есть несколько старых комментариев, которые мне нужно перенести на 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)?

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

1 Ответ

1 голос
/ 08 июня 2011

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

</p> <ul> <li><p>set the <b>content_type</b> to an instance of <b>ContentType</b> of your model (the one you're attaching the comment to):</p> <p><code>content_type = ContentType.objects.get_for_model(Blog)

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

object_pk = myBlog_instance.pk

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

...