2017-05-06 29 views
0

我一直試圖更好地理解Django中的DeleteView,後面跟着this turorial,一切正常,除了我的按鈕標籤看起來不像它應該那樣。相反,我必須使用輸入標籤才能使其工作,這使得在提交按鈕中放置glyphicon-trash(引導程序)成爲不可能。在Django中扮演有趣的按鈕

我不知道它是否與我在pythonanywhere.com上運行它有關,因爲某些網站建議在某些條件下,按鈕標記將無法正常工作,作爲<input type="submit">的替代方法。

這是我的代碼。 (我一直都在按鈕標籤和比較的目的輸入的標籤。)

<ul> 
{% for card in all_cards %} 
    <li>{{ card.front }} 
    <form action="{% url 'delete-card' card.id %}" method="post"> 
     {% csrf_token %} 
     <input type="hidden" name="card_id" value="{{ card.id }}" > 
     <input type="submit" class="btn btn-default" value="DELETE"> 
     <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-trash"></span></button> 
    </form> 
    </li> 
{% endfor %} 
</ul> 

令我百思不解的最多的就是按鈕被點擊標籤時,它給了我此錯誤消息。

Failed to load resource: the server responded with a /like_treasure/ status of 404 (Not Found) 

* like_treasure是在完全不同的Django項目中使用的目錄的名稱。

任何意見將不勝感激。

url.py

from django.conf.urls import url 
from django.conf import settings 
from django.views.static import serve 
from . import views 
# import PIL 


urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name="index"), 
    url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'), 
    url(r'^card/add/$', views.CreateCard.as_view(), name='add-card'), 
    url(r'^card/(?P<pk>[0-9]+)/update/$', views.UpdateCard.as_view(), name='update-card'), 
    url(r'^card/(?P<pk>[0-9]+)/delete/$', views.DeleteCard.as_view(), name='delete-card'), 
] 

if settings.DEBUG: 
    urlpatterns += [ 
     url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT,}), 
    ] 

views.py

from django.shortcuts import render 
from django.http import HttpResponse 
from django.views import generic 
from django.views.generic.edit import CreateView, UpdateView, DeleteView 
from django.core.urlresolvers import reverse_lazy 
from .models import Card 
# from django.http import HttpResponseRedirect 

# Create your views here. 


class IndexView(generic.ListView): 
    template_name = "index.html" 
    context_object_name = "all_cards" 

    def get_queryset(self): 
     return Card.objects.all() 

class DetailView(generic.DetailView): 
    model = Card 
    template_name = "detail.html" 


class CreateCard(CreateView): 
    model = Card 
    fields = ['front', 'back'] 

class UpdateCard(UpdateView): 
    model = Card 
    fields = ['front', 'back'] 

class DeleteCard(DeleteView): 
    model = Card 
    success_url = reverse_lazy('index') 
+0

顯示我們url.py文件.. – Boky

+0

@Boky:雙方提交按鈕張貼到相同的URL ... –

+0

注意''元素有一個*值*,則''

回答

0

剛剛從 「url.py」 到 「urls.py」 更改文件名。

+0

對不起,這是一種類型。實際的文件被命名爲「urls.py」。 – Yuta