Проблема рендеринга формы Django в HTML
Здравствуйте, я пытаюсь вывести форму в html и попробовал обычный {{ form }}. Однако когда я захожу на сайт, созданный с помощью: python manage.py runserver. Я получаю следующее, где должна быть форма (выделенная секция на снимке экрана)
Вот код для данной формы.
forms.py
from django import forms
from django.forms import ChoiceField, ModelForm, RadioSelect
from .models import command_node
from .models import beacon
class Command_Form(ModelForm):
class Meta:
model = command_node
fields = (
'host_id',
'current_commands'
)
host_id = forms.ModelChoiceField(
required=True,
queryset=beacon.objects.all(),
widget=forms.Select(
attrs={
'class': 'form-control'
},
)
)
current_comamnds = forms.ChoiceField(
required=True,
choices=[
('Sleep', "Sleep"),
('Open SSH_Tunnel', 'Open SSH_Tunnel'),
('Close SSH_Tunnel', 'Close SSH_Tunnel'),
('Open TCP_Tunnel', 'Open TCP_Tunnel'),
('Close TCP_Tunnel', 'Close TCP_Tunnel'),
('Open Dynamic', 'Open Dynamic'),
('Close Dynamic', 'Close Dynamic'),
('Task', 'Task'),
])
Вот html, о котором идет речь. Я удалил нерелевантные сегменты
home.html
</br>
</br>
<form action="" method=POST>
{% csrf_token %}
{{ form }}
<button type="Submit" class="btn btn-secondary btn-sm">Submit</button>
</form>
</body>
</html>
Последним я включил представления, так как я подозреваю, что это может иметь какое-то отношение к этому, но я не уверен. Я пытаюсь сделать так, чтобы при отправке формы страница перезагружалась.
Views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import beacon
from .models import command_node
from .forms import Command_Form
from django.http import HttpResponseRedirect
def home(request):
form = Command_Form,
if request.method == "POST":
form = form(request.POST)
if form.is_valid():
form.save()
return render(request, 'home.html', {"form": form})
return render(request, 'home.html', {"form": form},)
Попытка:
form = Command_Form()
if request.method == "POST":
form = Command_Form(request.POST)
Я считаю, что вы не инстанцируете модель, и в этом проблема.