Django Forms не отправляет значение кнопки radiobutton и также не показывает никакого вывода в терминале
Это HTML код.
<form action = "." method = "post">
<div class="form_data">
{% csrf_token %}
<br><br>
{{form.myfield}}
<br><br>
<input type="submit" value="Submit" class="btn btn-success" />
</div>
</form>
Это код forms.py
class TestForm(forms.ModelForm):
class Meta:
model = TestModel
fields = "__all__"
widgets = {'myfield': forms.RadioSelect()}
Это код models.py
class TestModel(models.Model):
git_Id = models.CharField(max_length=200)
git_Response = models.CharField(max_length=200)
is_approved = models.IntegerField()
MY_CHOICES = (
('opt0', 'Approved'),
('opt1', 'Not Approved'),
)
myfield = models.CharField(max_length=10, choices=MY_CHOICES, default="N/A")
кодviews.py
def test(request):
if request.method == "POST":
form = TestForm(request.POST)
if form.is_valid():
print("Form is Valid")
selected = form.cleaned_data['myfield']
print(selected)
if selected == 'opt0':
from config import request_id as r
rq = r["request_id"]
print(rq)
s = sql()
query = f"""update request_form_mymodel
set is_approved=1
where request_id = '{rq}' """
print(query)
s.update_query(query)
else:
pass
else:
form = TestForm()
return render(request, 'test.html', {'form': form})
Я не получаю никакого вывода, если я пытаюсь отправить форму после выбора радиокнопки, то она не работает и не печатает значения переменных в терминале, а также форма не отправляется. Что я хочу - я хочу, чтобы форма была отправлена и если выбрана радиокнопка opt0, то вызывалась s.update().
Форма не переходит в представление test
, так как вы указали .
в атрибуте action
, пожалуйста, удалите атрибут action
, так как Django всегда принимает маршрут текущей страницы, поэтому она автоматически перейдет в представление test
так:
<form method="POST">
<div class="form_data">
{% csrf_token %}
<br><br>
{{form.myfield}}
<br><br>
<input type="submit" value="Submit" class="btn btn-success" />
</div>
</form>