Джанго комментирует ValueError

Я получаю сообщение об ошибке ValueError при публикации в конечную точку, предоставленную django-comments, следующим образом, что я хотел бы устранить: введите описание изображения здесь

Подробное сообщение: "Попытка перейти к получению типа содержимого" 7 "и объект PK" 1 "существует с повышенным значением ValueError". Я не уверен, почему возникает эта ValueError, так как в админе я могу оставлять комментарии как таковые без ошибок:

введите описание изображения здесь

Обратите внимание, что "мой пользователь" является седьмым параметром в списке типов контента в разделе администратора.

введите описание изображения здесь

Функция, которая обрабатывает конечную точку /comments/post/ в comments.py:

@csrf_protect
@require_POST
def post_comment(request, next=None, using=None):
    """
    Post a comment.

    HTTP POST is required. If ``POST['submit'] == "preview"`` or if there are
    errors a preview template, ``comments/preview.html``, will be rendered.
    """
    # Fill out some initial data fields from an authenticated user, if present
    data = request.POST.copy()
    if request.user.is_authenticated():
        if not data.get('name', ''):
            data["name"] = request.user.get_full_name() or request.user.get_username()
        if not data.get('email', ''):
            data["email"] = request.user.email

    # Look up the object we're trying to comment about
    ctype = data.get("content_type")
    object_pk = data.get("object_pk")
    if ctype is None or object_pk is None:
        return CommentPostBadRequest("Missing content_type or object_pk field.")
    try:
        model = apps.get_model(*ctype.split(".", 1))
        target = model._default_manager.using(using).get(pk=object_pk)
    except TypeError:
        return CommentPostBadRequest(
            "Invalid content_type value: %r" % escape(ctype))
    except AttributeError:
        return CommentPostBadRequest(
            "The given content-type %r does not resolve to a valid model." % escape(ctype))
    except ObjectDoesNotExist:
        return CommentPostBadRequest(
            "No object matching content-type %r and object PK %r exists." % (
                escape(ctype), escape(object_pk)))
    except (ValueError, ValidationError) as e:
        return CommentPostBadRequest(
            "Attempting go get content-type %r and object PK %r exists raised %s" % (
                escape(ctype), escape(object_pk), e.__class__.__name__))

2 Дополнительные поля, которые я определил в моей модели пользовательских комментариев:

class ProfileComment(Comment):
    comment_OP_uri = models.CharField(max_length=300)
    comment_receiver = models.CharField(max_length=300)

Связанная форма создана в соответствии с документацией:

class ProfileCommentForm(CommentForm):
    comment_OP_uri = forms.CharField(max_length=300)
    comment_receiver = forms.CharField(max_length=300)

    def get_comment_model(self):
        # Use our custom comment model instead of the default one.
        return ProfileComment

    def get_comment_create_data(self):
        # Use the data of the superclass, and add in the custom field
        data = super(ProfileComment, self).get_comment_create_data()
        data['comment_OP_uri', 'comment_receiver'] = self.cleaned_data['comment_OP_uri', 'comment_receiver']
        return data

1 ответ

Решение

Решается путем изменения значения значения content_type на users.MyUser

apps.get_model требуется имя_приложения и имя_модели

Другие вопросы по тегам