Django-Tutorials icon indicating copy to clipboard operation
Django-Tutorials copied to clipboard

¿Como puedo solucionar: Exception Value: The view blog.views.compartir_comentario didn't return an HttpResponse object. It returned None instead.?

Open WmMM12 opened this issue 3 years ago • 0 comments

Tengo el siguiente error:

Environment:

Request Method: GET Request URL: http://127.0.0.1:8000/blog/7/compartir/

Django Version: 3.2.9 Python Version: 3.10.0 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback (most recent call last): File "C:\Users\wilde\OneDrive\Desktop\DD - WEB\PythonProjects\env01\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "C:\Users\wilde\OneDrive\Desktop\DD - WEB\PythonProjects\env01\lib\site-packages\django\core\handlers\base.py", line 188, in _get_response self.check_response(response, callback) File "C:\Users\wilde\OneDrive\Desktop\DD - WEB\PythonProjects\env01\lib\site-packages\django\core\handlers\base.py", line 309, in check_response raise ValueError(

Exception Type: ValueError at /blog/7/compartir/ Exception Value: The view blog.views.compartir_comentario didn't return an HttpResponse object. It returned None instead.

Mis códigos:

forms.py:

    from django import forms
    
    class FormularioEmailAnuncios(forms.Form):
        nombre = forms.CharField(max_length=25)
        email = forms.EmailField()
        para = forms.EmailField()
        comentarios = forms.CharField(required=False,
        widget= forms.Textarea)

 


Compartir.html:

    {% extends "../base.html" %}
    
    {% block titulo %} Compartir un comentario {% endblock  %}
    
    {% block content %}
    
        {% if enviado %}
    
            <h1>El e-mail se ha enviado correctamente</h1>
    
            <p>
                "{{ comentario.titulo }}" fue enviado correctamente a {{ formulario.cleaned_data.para }}
            </p>
    
        {% else %}
    
            <h1>Compartir "{{ comentario.titulo }}" por email </h1>
    
            <form method='post'>
                {{ formulario.as_p }}
                {% csrf_token %} <!--Para prevenir ataques cross-site-->
                <input type='submit' value='Enviar e-mail'>
            </form>
    
        {% endif %}
    
    {% endblock %}
    
View compartir_comentario:

    def compartir_comentario(request, comentario_id): 
    
        comentario = get_object_or_404(Anuncio, id=comentario_id, estado='publicado')
    
        enviado = False
    
        
    
        if request.method == 'POST':
            
            formulario = FormularioEmailAnuncios(request.POST)
            
            if formulario.is_valid():
    
                datos = formulario.cleaned_data
    
                comentario_url = request.build_absolute_uri(comentario.get_absolute_url())
    
                asunto = f"{datos['nombre']} te recomienda que leas {comentario.titulo}"
    
                mensaje = f"Leer {comentario.titulo} en {comentario_url} \n\n los comentarios de {datos['nombre']} : {datos['comentarios']} "
    
                send_mail(asunto, mensaje, '[email protected]', [datos ['para']])
    
                enviado = True
            
            else:
                formulario = FormularioEmailAnuncios() #es un GET que muestra el formulario limpio
            
            return render(request, 
            'blog/post/compartir.html',
            {'comentario': comentario,
            'formulario':formulario,
            'enviado':enviado})

Al intentar compartir un comentario, así:

[![Ejemplo compartir comentario via Email][1]][1] [1]: https://i.stack.imgur.com/mGem0.png

Obtengo el siguiente resultado: Error Resultante

WmMM12 avatar Nov 30 '21 02:11 WmMM12