1
我正在尝试构建一个应用程序创建患者数据,将其保存并显示出来。窗体不保存对象重定向到新的窗体视图
问题:当我填充字段并单击保存时,它不会保存对象并将数据呈现给文档对象模型。它重新加载页面,字段数据仍在字段中。
我不知道我做错了什么。视图,表单和模型代码似乎是准确的。我欢迎任何有用的援助。
下面是代码:
models.py
from django.db import models
from django.contrib.auth.models import User
from Identity import settings
import datetime
class Identity_unique(models.Model):
NIS = models.CharField(max_length = 200, primary_key = True)
user = models.ForeignKey(settings.AUTH_USER_MODEL)
Timestamp = models.DateTimeField(auto_now = True)
first_Name = models.CharField(max_length = 80, null = True)
last_Name = models.CharField(max_length = 80, null = True)
location = models.CharField(max_length = 100, blank = True)
date_of_birth = models.DateField(auto_now = False, auto_now_add = False, blank = True, null = True)
contact = models.CharField(max_length = 15, null = True)
views.py
from django.shortcuts import render, redirect
from django.views.generic import TemplateView, UpdateView
from nesting.forms import Identity_Form, Symptom_Form
from nesting.models import Identity_unique, Symptom_relation
class Identity_view(TemplateView):
template_name = 'nesting/nesting.html'
def get(self, request):
form = Identity_Form()
Identities = Identity_unique.objects.filter(user = request.user)
var = {'form': form, 'Identities': Identities}
return render(request, self.template_name, var)
def post(self, request):
form = Identity_Form(request.POST or None)
content = None
if form.is_valid():
NIS = form.save(commit = False)
NIS.user = request.user
NIS.save()
content = form.cleaned_data['NIS']
form = Identity_Form()
return redirect('nesting:nesting')
var = {'form': form, 'content': content}
return render(request,self.template_name, var)
forms.py
from django import forms
from nesting.models import Identity_unique
from nesting.models import Symptom_relation
class Identity_Form(forms.ModelForm):
NIS = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter NIS',
'class' : 'form-control'
}
)
)
first_Name = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter First Name',
'class' : 'form-control'
}
)
)
last_Name = forms.CharField(
widget=forms.TextInput(
attrs={
'placeholder': 'Enter Last Name',
'class' : 'form-control'
}
)
)
location = forms.CharField(
widget=forms.TextInput(
attrs= {
'placeholder':'Enter Address',
'class':'form-control'
}
)
)
date_of_birth = forms.DateField(
required = False,
widget=forms.TextInput(
attrs= {
'placeholder' : 'Enter Birthday',
'class':'form-control'
}
),
)
contact = forms.CharField(
widget=forms.TextInput(
attrs= {
'placeholder':'Enter Contact',
'class':'form-control'
}
)
)
class Meta:
model = Identity_unique
fields = ('NIS', 'first_Name', 'last_Name', 'location', 'date_of_birth', 'contact',)
编辑
nesting.html
<form method = 'post' novalidate>
{% csrf_token %}
{% if form.non_field_errors %}
<div class="alert alert-danger" role="alert">
{% for error in form.non_field_errors %}
{{ error }}
{% endfor %}
</div>
{% endif %}
<div class = "form-row">
<div class = "form-group col-md-6">
{{ form.NIS.errors }}
{{ form.NIS }}
</div>
<div class = "form-group col-md-6">
{{form.Contact.errors}}
{{form.Contact}}
</div>
</div>
<div class = "form-row">
<div class = "form-group col-md-6">
{{form.first_Name.errors}}
{{form.first_Name}}
</div>
<div class = "form-group col-md-6">
{{form.last_Name.errors}}
{{form.last_Name}}
</div>
</div>
<div class = "form-row">
<div class = "form-group col-md-6">
{{form.location.errors}}
{{form.location}}
</div>
<div class = "form-group col-md-6">
{{form.date_of_birth.errors}}
{{form.date_of_birth}}
</div>
</div>
<button class = "btn-primary btn-large btn ">Submit</button>
</form>
在视图中打印'form.errors'或在模板中打印'{{form.errors}}'以查看表单为什么无效。问题可能出现在您的模板中,您尚未显示。 – Alasdair
@Alasdair我将模板添加到问题陈述中。 –