这里是我的文件(如下图),我不知道如何添加疾病和症状到数据库(1-M的关系)如何将数据添加到两个因表中的Django
网页看起来像:
dname:| ____________ |
类型:| ____________ |
症状:| ___________ | |添加|
| finish |
- 添加DNAME,疾病的类型
- 新增第1个症状是病的,然后单击添加按钮
- 添加第二个症状相同的疾病,然后单击添加按钮
- 做所有的症状
- 点击完成即可完成第一种疾病的插入
我是无法管理这种情况。由于我必须添加多个症状,我如何才能访问Disease id,因为此时数据库中不存在疾病入口。
models.py
class Disease(models.Model):
did = models.AutoField(verbose_name='Disease Id', primary_key=True)
dName = models.CharField(max_length=20)
dtype = models.CharField(max_length=10)
class Symptoms(models.Model):
sid = models.AutoField(verbose_name='Symptoms Id',primary_key=True)
sname = models.CharField(max_length=10)
disease = models.ForeignKey(Disease,related_name='symptoms',on_delete=models.CASCADE)
forms.py
class DiseaseForm(ModelForm):
dname = forms.CharField()
type = forms.ChoiceField()
class Meta:
model = Disease
fields = "__all__"
class SymptomForm(ModelForm):
sname = forms.CharField()
class Meta:
model = Symptoms
fields = "__all__"
Views.py
class AddDisease(TemplateView):
template_name = 'personal/disease.html'
def get(self, request):
dform = DiseaseForm()
sform = SymptomForm()
ddata = Disease.objects.all()
sdata = Symptoms.objects.all()
args = {'dform': dform,'sform': sform,'ddata':ddata,'sdata':sdata}
return render(request,self.template_name,args)
disease.html
<body>
<form method="post">
{% csrf_token %}
{{ dform.as_p }}
{{ sform.as_p }}
<input type="button" class="btn" name="addbtn" value="click">
</form>
</body>
This Works ... thanks !!! –
如果我必须添加2个相同的字段一样, 1)食品= TaggableManager 2)药= TaggableManager 错误:你不能有两个taggble经理 帮我在这也.. –
@CharmiShah我已经更新我的答案,试试看,如果有任何问题,请告诉我。 –