urls.pyと対応付けた、「http://127.0.0.1:8000/update/3」こちらでアクセスした際に表示される、「update.html」なのですが、<input type="submit" value='更新する'> こちら部分で、typeにsubmitを指定しているにも関わらず、textフィールドのような形になってしまっており、押してもフィールドがアクティブになりテキストが変更できるだけのような状態になってしまっております。別ブラウザ(safari)で試したのですが、同様の状態です。
ソースの表示も確認してみたのですが、typeはsubmitになっている為、原因が分からないです。
下記は,update.htmlのコードになります。
{% extends 'base.html' %} {% block content %} <form action='' method='POST'>{% csrf_token %} {{ form.title}} {{ form.memo}} {{ form.priority}} {{ form.duedate}} <input type="submit" value='更新する'> </form> {% endblock content %}
以下はurls.pyになります。
from django.urls import path from .views import TodoList,TodoDetail,TodoCreate,TodoDelete,TodoUpdate urlpatterns = [ path('list/',TodoList.as_view(),name='list'), path('detail/<int:pk>',TodoDetail.as_view(),name='detail'), path('create/',TodoCreate.as_view(),name='create'), path('delete/<int:pk>',TodoDelete.as_view(),name='delete'), path('update/<int:pk>',TodoUpdate.as_view(),name='update'), ]
以下は、view.pyです
from django.shortcuts import render from django.views.generic import ListView,DetailView,CreateView,DeleteView,UpdateView from .models import TodoModelModel from django.urls import reverse_lazy # Create your views here. class TodoList(ListView): template_name = 'list.html' model = TodoModelModel class TodoDetail(DetailView): template_name = 'detail.html' model = TodoModelModel class TodoCreate(CreateView): template_name = 'create.html' model = TodoModelModel fields = ('title','memo','priority','duedate') success_url = reverse_lazy('list') class TodoDelete(DeleteView): template_name = 'delete.html' model = TodoModelModel success_url = reverse_lazy('list') class TodoUpdate(UpdateView): template_name = 'update.html' model = TodoModelModel fields = ('title','memo','priority','duedate') success_url = reverse_lazy('list')
原因特定の為、ご助言頂けましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/16 01:49