Форма Django CreateView не может быть отправлена
Мои взгляды:
class AddSuiteView(CreateView):
model = TestSuite
form_class = TestSuiteForm
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
my_TestCase = TestCase.objects.all()
context['my_testcase'] = my_TestCase
return context
def get_success_url(self):
return reverse("integratedTest:testSuite")
Мой form.py:
class TestSuiteForm(forms.ModelForm):
class Meta:
model = TestSuite
fields = ( 'name', 'test_case_list', 'created_by' )
Моя модель:
class TestSuite(models.Model):
name = models.CharField(max_length=200)
test_case_list = models.CharField(max_length=200, validators=[validate_comma_separated_integer_list], default = "1")
created_by = models.CharField(max_length=200, default = "anyone")
create_datetime = models.DateTimeField("TestSuite created on", auto_now = True)
Мой html немного сложен:
Детали: Верхний список выбора(name="test_case_list_select_l") является полным списком. Двойной щелчок по опциям в верхнем списке может добавить одноименную опцию в нижний список(name="test_case_list_select_r") и скрытый вход(name="test_case_list") получит новое значение. Надеюсь, скрытый ввод обновит поле test_case_list
Код кажется мне хорошим, но, к сожалению, он не может сохраниться. После ввода всех данных и нажатия кнопки сохранить, страница никогда не перенаправляется и модель TestSuite не имеет новых записей. Нижний список становится пустым.
P.S. Мой form.html взят из учебника Django:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save">
</form>
Если мне нужно определенное действие="что-то", я должен создать другую функцию представления для сохранения записи. Я думаю, что CreateView может выполнить это для меня, верно?
В моей самой начальной версии нет списка с возможностью выбора, вместо этого я использую текстовый ввод, принимающий строку. Это нормально. Кнопка submit тогда работала. Поэтому я думаю, что это не связано с действием формы.
Для лучшего ввода я перечислил все имена существующих тестовых случаев и использовал список с возможностью выбора. Пользователь выбирает свой вариант, и я сохраняю все имена как (name1N1 раз, name2N2 раза, ... ). Затем submit не сработал.
action="/ваше имя/" отсутствует в теге вашей формы.
<form action="/your-route" method="post">
.
.
.
<button type="submit">Submit</button>
</form>