invoked get_absolute_url() on List model to achieve DRY urls in views
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
|
||||
class List(models.Model):
|
||||
pass
|
||||
def get_absolute_url(self):
|
||||
return reverse("view_list", args=[self.id])
|
||||
|
||||
|
||||
class Item(models.Model):
|
||||
text = models.TextField(default='')
|
||||
|
||||
@@ -42,3 +42,7 @@ class ListAndItemModelsTest(TestCase):
|
||||
item = Item(list=mylist, text="")
|
||||
with self.assertRaises(ValidationError):
|
||||
item.full_clean()
|
||||
|
||||
def test_get_absolute_url(self):
|
||||
mylist = List.objects.create()
|
||||
self.assertEqual(mylist.get_absolute_url(), f"/apps/dashboard/{mylist.id}/")
|
||||
|
||||
@@ -15,7 +15,7 @@ def new_list(request):
|
||||
nulist.delete()
|
||||
error = "You can't have an empty list item"
|
||||
return render(request, "apps/dashboard/home.html", {"error": error})
|
||||
return redirect(f'/apps/dashboard/{nulist.id}/')
|
||||
return redirect(nulist)
|
||||
|
||||
def view_list(request, list_id):
|
||||
our_list = List.objects.get(id=list_id)
|
||||
@@ -26,7 +26,7 @@ def view_list(request, list_id):
|
||||
item = Item(text=request.POST['item_text'], list=our_list)
|
||||
item.full_clean()
|
||||
item.save()
|
||||
return redirect(f'/apps/dashboard/{our_list.id}/')
|
||||
return redirect(our_list)
|
||||
except ValidationError:
|
||||
error = "You can't have an empty list item"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user