====================================================================
models.py
====================================================================
class Environment(models.Model):
class Meta:
verbose_name = '環境種別'
verbose_name_plural = '環境種別'
env_value = models.CharField(max_length=20)
def __str__(self):
return self.env_value
class ServerInfo(models.Model):
class Meta:
verbose_name = 'サーバ情報'
verbose_name_plural = 'サーバ管理情報'
OS_VERSIONS = (
('2012NR', 'WindowsServer2012'),
('2012SR2', 'WindowsServer2012R2'),
('2016NR', 'WinodwsServer2016NR'),
)
environment = models.ForeignKey(Environment, on_delete=models.CASCADE)
server_name = models.CharField(max_length=50, unique=True)
os_version = models.CharField(max_length=50,choices=OS_VERSIONS)
cpu = models.IntegerField(default=1, help_text="単位はGB")
memory = models.IntegerField(default=1, help_text="単位はGB")
#@classmethod
def __str__(self):
return self.server_name
===============================================================
======================================================================
views.py
===============================================================
def form_test2(request):
if request.method == "POST":
form = ServerInfoForm(request.POST)
if form.is_valid():
serverinfo = form.save(commit=False)
serverinfo.environment_id = request.GET["environment"] →ここでエラーになっているっぽい。
serverinfo.server_name = request.GET["server_name"]
serverinfo.os_version = request.GET["os_version"]
serverinfo.cpu = request.GET["cpu"]
serverinfo.memory = request.GET["memory"]
serverinfo.save()
else:
form = ServerInfoForm()
return render(request, 'form_test.html', {'form': form})
======================================================================
======================================================================
urls.py
======================================================================
<関係する部分のみ抜粋>
url(r'^form_test2$', views.form_test2,name='form_test2'),
======================================================================
======================================================================
Form.py
======================================================================
from django import forms
from .models import ServerInfo
class ServerInfoForm(forms.ModelForm):
class Meta:
model = ServerInfo
fields =("environment","server_name","os_version","cpu","memory")
======================================================================
======================================================================
form_test.html
======================================================================
{% extends 'base.html' %}
{% block content %}
<H1>FORM画面テスト</H1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock content %}