Ошибка в DetailView при попытке отправить форму - PullRequest
0 голосов
/ 22 октября 2018



У меня заканчиваются идеи, и я пробовал разные решения.Я создаю для своей диссертации страницу предложения работы с Джанго 1.9.До сих пор я построил большую часть этого, но я изо всех сил пытаюсь создать метод для применения к работе.
У меня есть ListView для предложений, Страница предложений для DetailView, но я добавил форму в этомодин, и я получаю сообщение об ошибке 405, даже если URL-адрес перенаправляет на другую страницу.

Метод не разрешен (POST): / anuncios / display_anuncio / 2 / [22 / Oct / 201809:59:00] "POST / anuncios / display_anuncio / 2 / HTTP / 1.1" 405 0

В urls.py:

urlpatterns = [
url(r'^$', crear_anuncio, name="crear_anuncio"),
url(r'^postulante_lista_anuncio/', AnuncioPostulanteList.as_view(), name="postulante_lista_anuncio"),
url(r'^postular/', postular, name='postular'),]

Вviews.py

class AnuncioPostulanteList(ListView):
    model = Anuncio
    template_name = 'anuncios/postulante_lista_anuncio.html'

class DetailAnuncio(DetailView):
    model = Anuncio
    template_name = 'anuncios/pagina_anuncio.html'
    success_url = reverse_lazy('anuncios:pagina_anuncio')

def postular(request):
    if request.method == 'POST':
        form = PostularForm(request.POST)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.fecha_postulacion = timezone.now()
            instance.id_usuario_postulante = request.request.user.pk
            instance.id_anuncio = request.id_anuncio
            instance.fecha_cambio_postulacion = timezone.now()
            instance.save()
            return redirect('anuncios:postulante_lista_anuncio') 
    else:
        form = PostularForm()
    return render(request, 'anuncios/postulante_lista_anuncio.html', 
                  {'form': form})

В Forms.py (на всякий случай)

class PostularForm(forms.ModelForm):
    class Meta:
        model = models.Postulacion
        fields = [
        'id_postulacion',
        'fecha_postulacion',
        'id_usuario_postulante',
        'id_anuncio',
        'id_estado_postulacion',
        'fecha_cambio_postulacion',
        ]

И, наконец, в pagina_anuncio.html

{% extends 'anuncios/base_anuncio_postulante.html' %}
{% load staticfiles %}


{% block content %}

<!-- Page Content
================================================== -->
<div class="dashboard-content-container" data-simplebar>
    <div class="dashboard-content-inner" >
        <div class="single-page-header" data-background-image="{% static "images/single-job.jpg" %}">
            <div class="container">
                <div class="row">
                    <form method="post"> 
                    {% csrf_token %}
                    <div class="col-md-12">
                        <div class="single-page-header-inner">
                            <div class="left-side">
                                <div class="header-image"><a href="single-company-profile.html"><img src="{% static "images/company-logo-03a.png" %}" alt=""></a></div>
                                <div class="header-details">
                                    <h3>{{ anuncio.titulo_anuncio }}</h3>
                                    <h4>{{ anuncio.alter_titulo_anuncio }}</h4>
                                    <h5> Acerca del Empleador</h5>
                                    <ul>
                                        <li></li><i class="icon-material-outline-business"></i> {{ anuncio.user_ptr_id }} </li>
                                        <li><img class="flag" src="images/flags/gb.svg" alt=""> {{ anuncio.id_direccion }} </li>
                                    </ul>
                                </div>
                            </div>
                            <div class="right-side">
                                <div class="salary-box">
                                    <div class="salary-type">Salario</div>
                                    <div class="salary-amount">$ {{ anuncio.salario }}</div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- Content -->
    <div class="container">
        <div class="row">
        <!-- Content -->
            <div class="col-md-8 content-right-offset">
                <div class="single-page-section">
                    <h3 class="margin-bottom-25">Descripción</h3>
                    <p>{{ anuncio.detalle_anuncio }}</p>
                </div>
                <div class="single-page-section">
                    <h3 class="margin-bottom-25">Descripción Alternativa</h3>
                    <p>{{ anuncio.alter_detalle_anuncio }}</p>
                </div>
            </div>
                <!-- Sidebar -->
            <div class="col-md-4">
                <div class="sidebar-container">
                    <button type="submit" class="apply-now-button"> Postular Ahora <i class="icon-material-outline-arrow-right-alt"></i></button>
                    <!-- Sidebar Widget -->
                    <div class="sidebar-widget">
                        <div class="job-overview">
                            <div class="job-overview-headline"> Resumen del Trabajo </div>
                            <div class="job-overview-inner">
                                <ul>
                                    <li>
                                        <i class="icon-material-outline-location-on"></i>
                                        <span> Dirección </span>
                                        <h5> {{ anuncio.id_direccion }} </h5>
                                    </li>
                                    <li>
                                        <i class="icon-material-outline-business-center"></i>
                                        <span>Tipo de Trabajo</span>
                                        <h5>{{ anuncio.tipo_trabajo }}</h5>
                                    </li>
                                    <li>
                                        <i class="icon-material-outline-local-atm"></i>
                                        <span>Salario</span>
                                        <h5>{{ anuncio.salario }}</h5>
                                    </li>
                                    <li>
                                        <i class="icon-material-outline-access-time"></i>
                                        <span>Posteado hace:</span>
                                        <h5>2 days ago</h5>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <!-- Sidebar Widget -->
                    <div class="sidebar-widget">
                        <h3>Compártelo</h3>
                        <!-- Copy URL -->
                        <div class="copy-url">
                            <input id="copy-url" type="text" value="" class="with-border">
                            <button class="copy-url-button ripple-effect" data-clipboard-target="#copy-url" title="Copy to Clipboard" data-tippy-placement="top"><i class="icon-material-outline-file-copy"></i></button>
                        </div>
                    </div>
                </div>
            </div>
        </form>
        </div>
    </div>
</div>
</div>
{% endblock %}
...