Ben django ve python nispeten yeni ve şimdi birkaç gün PUT ve DELETE istekleri django formları istekleri göndermek nasıl anlamaya çalışıyorum. https://baxeico.wordpress.com/2014/06/25/put-and-delete-http-requests-with-django-and-jquery/PUT ve DELETE Django
Sending a DELETE request from a form in Django
Ama bu konular bu sorunu çözmek yolu benim için kolay değil dikişler:
bu konular buldum. Öyleyse soru şu: Django'da PUT ve DELETE taleplerinin sorgulama formlarını göndermenin kolay bir yolu var.views.py
class AllRoutes(View):
model = Schedule
template_name = 'trains_schedule/all_routes.html'
def get(self,request,train_id=None):
if train_id:
train = Schedule.objects.get(pk=int(train_id))
context = {'train':train}
else:
context = {'schedule_list':Schedule.objects.all()}
return render(request,'trains_schedule/all_routes.html',context)
def delete(self,request,train_id=None):
route = get_object_or_404(Schedule, pk=train_id)
response = u'Successful delete route {}'.format(route.display_name())
route.delete()
return HttpResponse(response)
urls.py all_routes.html
{% if schedule_list %}
<h3>{{ "List of all train routes" }}</h3>
<ul>
{% for train_route in schedule_list %}
<li><a href="{% url 'trains' train_route.id %}">{{ train_route.display_name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p></p>
{% endif %}
{% if train %}
<h1>{{ train.train }}</h1>
<h3>{{ "Route info" }}</h3>
{{ train.display_train }}
<h3>{{ "Train info" }}</h3>
{{train.display_train_info}}
<form method="delete">
{% csrf_token %}
<input type="submit" value="Delete" />
</form>
{% else %}
<p></p>
{% endif %}
Şimdi bu şekilde çalışır
urlpatterns = [
url(r'^trains/(?P<train_id>[0-9]+)?$', views.AllRoutes.as_view(), name='trains')]
: Şimdilik
i bu var:
- /trenler/tüm trenler yollarının gösterisi listesi ve her rota bağlantılar sağlar
- /trenler/12 - rota kimliği var() views.py almak ve bu rota hakkında bilgi göstermek
Ve bunu "sil" e bastığımda görmek istiyorum - görünümü DELETE isteği alırsınız. Ben öyle yapıyorum ile sona
:
<form method="post">
{% csrf_token %}
<input id="action_id" type="hidden" name="action" value="Delete">
<input type="submit" value="Delete" />
</form>
ve views.py i action_id == post isteğinin işleme ekleyin
"Sil" Ama SİL gerçek yapmak istiyorum ve PUT isteği, POST isteğini yapmam gerektiğini anlamak için ayrıştırmak yerine - silme veya rota değiştirme veya yenisini ekleme.
Ben bu bölümünü değiştirmek gerektiğini anlamanızı:
<form method="delete">
{% csrf_token %}
<input type="submit" value="Delete" />
</form>
Ama bunu nasıl bilmiyorum.
Django'da nasıl silme veya düzenleme yapılacağını mı soruyorsunuz yoksa uygun bir dinlenme arabirimi mi uygulamak istiyorsunuz?Cevap bir dinlenme arayüzü için farklı olacak, en iyi üçüncü taraf paketini kullanmaktır – dkarchmer
Sadece bilmek istiyorum en kolay yolu ön uçtan PUT ve DELETE göndermek için yoldur. REST çerçevesini okudum - çok ama aynı problemi anlayın - ön taraftan gelen PUT ve DELETE isteklerini nasıl anlayacağımı anlamıyorum. – Vova
Verileri değiştirmek ve silmek için PUT ve DELETE kullandığınızı gerçekten okudunuz, ancak bir API geliştirmediyseniz, düzenleme ve silme görünümleri oluşturmak için uygun Django yolunu kullanabilirsiniz. Bu yüzden, anlamayacağınız kelimeleri kullanmaya çalışmak, belki de son hedefinizin ne olduğunu açıklayabilir – dkarchmer