我正在嘗試以 html 格式呈現表單,并嘗試了正常的 {{ form }}。但是,當我訪問通過以下方式設定的站點時:python manage.py runserver。我得到以下表格應該去的地方(螢屏截圖上突出顯示的部分)
網頁
這是相關表單的代碼。
表格.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。我洗掉了不相關的部分
主頁.html
</br>
</br>
<form action="" method=POST>
{% csrf_token %}
{{ form }}
<button type="Submit" class="btn btn-secondary btn-sm">Submit</button>
</form>
</body>
</html>
最后我已經包含了這些觀點,因為我懷疑它可能與它有關,但我不確定。我正在嘗試這樣做,以便在提交表單時重新加載頁面。
視圖.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},)
uj5u.com熱心網友回復:
嘗試:
form = Command_Form()
if request.method == "POST":
form = Command_Form(request.POST)
我相信您沒有實體化模型,這就是問題所在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/482986.html
標籤:Python django 形式 django-forms
下一篇:為什么html表單發送空資料?
