Хорошо, поэтому, судя по вашим form
, у вас есть много плагинов django, которые вы используете. Я должен был попросить у вас полный test
, но я думаю, что мог бы понять, где возникнет какая-то проблема.
Когда вы self.client.post
, вы действительно проверяете view
, а не обязательно форму. {"title" : 'title', "status" : 2, "user" :1}
- это 3 значения, которые ваш client
равен post
ing.
Input Field : Data(Value of the Field)
title :'title' # A string
status : 2 # The number 2
user : 1 # The number 1
Вот некоторый тестовый код, который работал для меня. Надеюсь, это поможет вам.
forms.py
from .models import CustomerEmployeeName
class EmployeeNameForm(ModelForm):
class Meta:
model = CustomerEmployeeName
fields = [
'employee_choices',
'first_name',
'middle_name',
'last_name',
]
test_forms.py
from django.test import TestCase
from .forms import EmployeeNameForm
class TestEmployeeNameForm(TestCase):
"""
TESTS: form.is_valid
"""
# form.is_valid=True
# middle_name not required.
# middle_name is blank.
def test_form_valid_middle_optional_blank(self):
name_form_data = {'first_name': 'First', # Required
'middle_name': '', # Optional
'last_name': 'Last', # Required
'employee_choices': 'E', # Required
}
name_form = EmployeeNameForm(data=name_form_data)
self.assertTrue(name_form.is_valid())
view.py
from .forms import EmployeeNameForm
def create_employee_profile(request):
if request.POST:
name_form = EmployeeNameForm(request.POST)
if name_form.is_valid():
new_name_form = name_form.save()
return redirect(new_name_form) #get_absolute_url set on model
else:
return render(request,
'service/template_create_employee_profile.html',
{'name_form': name_form}
)
else:
name_form = EmployeeNameForm(
initial={'employee_choices': 'E'}
)
return render(request,
'service/template_create_employee_profile.html',
{'name_form': name_form}
)
test_views.py
from django.test import TestCase, Client
from service.models import CustomerEmployeeName
class TestCreateEmployeeProfileView(TestCase):
# TEST: View saves valid object.
def test_CreateEmployeeProfileView_saves_valid_object(self):
response = self.client.post(
'/service/', {
'first_name': 'Test', # Required
'middile_name': 'Testy', # Optional
'last_name': 'Testman', # Required
'employee_choices': 'E', # Required
})
self.assertTrue(CustomerEmployeeName.objects.filter(
first_name='Test').exists())
Если вы хотите опубликовать больше своего кода, я с удовольствием его посмотрю.