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.db import models
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
class List(models.Model):
|
class List(models.Model):
|
||||||
pass
|
def get_absolute_url(self):
|
||||||
|
return reverse("view_list", args=[self.id])
|
||||||
|
|
||||||
|
|
||||||
class Item(models.Model):
|
class Item(models.Model):
|
||||||
text = models.TextField(default='')
|
text = models.TextField(default='')
|
||||||
|
|||||||
@@ -42,3 +42,7 @@ class ListAndItemModelsTest(TestCase):
|
|||||||
item = Item(list=mylist, text="")
|
item = Item(list=mylist, text="")
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
item.full_clean()
|
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()
|
nulist.delete()
|
||||||
error = "You can't have an empty list item"
|
error = "You can't have an empty list item"
|
||||||
return render(request, "apps/dashboard/home.html", {"error": error})
|
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):
|
def view_list(request, list_id):
|
||||||
our_list = List.objects.get(id=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 = Item(text=request.POST['item_text'], list=our_list)
|
||||||
item.full_clean()
|
item.full_clean()
|
||||||
item.save()
|
item.save()
|
||||||
return redirect(f'/apps/dashboard/{our_list.id}/')
|
return redirect(our_list)
|
||||||
except ValidationError:
|
except ValidationError:
|
||||||
error = "You can't have an empty list item"
|
error = "You can't have an empty list item"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user