Django: Как я могу обновить свои просмотры? проблема с URL - PullRequest
0 голосов
/ 31 января 2020

Как показано ниже, я сделал вид обновления, но он не работает. после того, как я щелкнул, он не работает, просто печатается консольный журнал

"GET / moneylogs / update / 7 / HTTP / 1.1" 200 6243

. страница остается как только refre sh.

Как я могу обновить свой денежный журнал? views.py

class moneylog_update(UpdateView):
    model = moneylog_models.Moneylog
    form_class = forms.UpdateMoneylogForm
    template_name = "moneylogs/update.html"

    def form_valid(self, form):
        moneylog = form.save(commit=False)
        moneybook = moneybook_models.Moneybook.objects.get(
            pk=self.kwargs["pk"])
        moneylog.save()
        form.save_m2m()
        return redirect(reverse("moneybooks:detail", kwargs={'pk': moneybook.pk}))

urls.py

app_name = "moneylogs"

urlpatterns = [
    path("create/<int:pk>/",
         views.moneylog_create.as_view(), name="create"),
    path("update/<int:pk>/",
         views.moneylog_update.as_view(), name="update"),
    path("<int:moneybook_pk>/delete/<int:moneylog_pk>/",
         views.moneylog_delete, name="delete"),
]

moneylog_form_update. html

  <div class="input {% if field.errors %}has_error{% endif %}">
        <div class="flex">
            <div class="w-1/4">
                {{form.memo.label}} 
            </div>
            <div class="w-3/4 border-b my-2 py-3">
                {{form.memo}}
            </div>
        </div>
        {% if form.memo.errors %}
            {% for error in form.memo.errors %}
                <span class="text-red-700 font-medium text-sm">{{error}}</span> 
            {% endfor %}
        {% endif %}
    </div>
<a href="{% url 'moneylogs:update' moneylog.pk %} ">
    <div class="px-2 py-1 rounded bg-red-500 text-white">{{cta}}</div>
</a>

1 Ответ

1 голос
/ 31 января 2020

Поскольку представление «Обновление» обрабатывает форму по почтовому запросу, для отправки ваших данных требуется форма HTML с почтовым запросом.

<form method="post" action="{% url 'moneylogs:update' moneylog.pk %}">
 <div class="input {% if field.errors %}has_error{% endif %}">
        <div class="flex">
            <div class="w-1/4">
                {{form.memo.label}} 
            </div>
            <div class="w-3/4 border-b my-2 py-3">
                {{form.memo}}
            </div>
        </div>
        {% if form.memo.errors %}
            {% for error in form.memo.errors %}
                <span class="text-red-700 font-medium text-sm">{{error}}</span> 
            {% endfor %}
        {% endif %}
    </div>
<input type="submit" value="{{cta}}" />
</form>

<a></a> попадет на сервер с помощью запроса GET .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...