custom save method implemented in ItemForm(); views & tests updated accordingly (all UTs & FTs passing)
This commit is contained in:
@@ -16,3 +16,7 @@ class ItemForm(forms.models.ModelForm):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
error_messages = {"text": {"required": EMPTY_ITEM_ERROR}}
|
error_messages = {"text": {"required": EMPTY_ITEM_ERROR}}
|
||||||
|
|
||||||
|
def save(self, for_list):
|
||||||
|
self.instance.list = for_list
|
||||||
|
return super().save()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from ..forms import EMPTY_ITEM_ERROR, ItemForm
|
from ..forms import EMPTY_ITEM_ERROR, ItemForm
|
||||||
|
from ..models import Item, List
|
||||||
|
|
||||||
class ItemFormTest(TestCase):
|
class ItemFormTest(TestCase):
|
||||||
def test_form_item_has_placeholder_and_css_classes(self):
|
def test_form_item_has_placeholder_and_css_classes(self):
|
||||||
@@ -16,3 +17,11 @@ class ItemFormTest(TestCase):
|
|||||||
form = ItemForm(data={"text": ""})
|
form = ItemForm(data={"text": ""})
|
||||||
self.assertFalse(form.is_valid())
|
self.assertFalse(form.is_valid())
|
||||||
self.assertEqual(form.errors["text"], [EMPTY_ITEM_ERROR])
|
self.assertEqual(form.errors["text"], [EMPTY_ITEM_ERROR])
|
||||||
|
|
||||||
|
def test_form_save_handles_saving_to_a_list(self):
|
||||||
|
mylist = List.objects.create()
|
||||||
|
form = ItemForm(data={"text": "do re mi"})
|
||||||
|
new_item = form.save(for_list=mylist)
|
||||||
|
self.assertEqual(new_item, Item.objects.get())
|
||||||
|
self.assertEqual(new_item.text, "do re mi")
|
||||||
|
self.assertEqual(new_item.list, mylist)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ def view_list(request, list_id):
|
|||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = ItemForm(data=request.POST)
|
form = ItemForm(data=request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
Item.objects.create(text=request.POST["text"], list=our_list)
|
form.save(for_list=our_list)
|
||||||
return redirect(our_list)
|
return redirect(our_list)
|
||||||
return render(request, 'apps/dashboard/list.html', {'list': our_list, "form": form})
|
return render(request, 'apps/dashboard/list.html', {'list': our_list, "form": form})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user