Chciałbym aby użytkownik miał możliwość usunięcia dodanego przez siebie posta. Próbuje robić to w ten sposób :
models.py
class PublishedManager(models.Manager):
def get_queryset(self):
return super(PublishedManager, self).get_queryset()
class Post(models.Model):
title = models.CharField(max_length=250)
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
location = models.CharField(max_length=100)
objects = models.Manager()
published = PublishedManager()
def get_absolute_url(self):
return reverse('post_detail', args=[self.id])
def get_absolute_url(self):
return reverse('delete_post', args=[self.id])
class Meta:
ordering = ('-publish',)
views.py
def delete_post(request, id):
del_post = get_object_or_404(Post, id=id)
del_post.delete(Post, id=id)
return render(request, 'account/delete-post.html', {'del_post': del_post})
urls.py
url(r'^delete-post/$', views.delete_post, name='delete_post'),
delete_post.html
{% extends "base.html" %}
{% block title %}Post został usunięty{% endblock %}
{% block content %}
<p>Twój post został usunięty</p>
{% endblock %}
błąd
TypeError: delete_post() missing 1 required positional argument: 'id'
Nie wiem od której strony to ugryźć. Czy błędnie próbuję stworzyć mechanizm usunięcia posta. Czy może del_post.delete() jest niewłaściwe. Czy podaję złe argumenty do .delete(). Proszę o naprowadzenie mnie na dobre tory.