我有兩個模型。一個帶有名稱字段的模型,另一個帶有模型1的關鍵技能字段和外鍵。我已經將值存儲到字段中。當我使用關鍵技能進行搜索時,它應該帶有輸入字段的名稱。當我搜索c和C++時(如果名稱同時包含c和C++),當我根據搜索檢索名稱時,名稱會重複兩次。我不想重複。 models.py如何避免從數據庫檢索重複值?
class form1(models.Model):
name=models.CharField(max_length=20)
def __unicode__(self):
return self.name
class form2(models.Model):
keyskills=models.CharField(max_length=20)
na=models.ForeignKey(form1)
def __unicode__(self):
return self.keyskills,self.na
views.py
def add(request):
if request.method=='POST':
na=request.POST.get('name1')
k=request.POST.get('key1')
v1=form1(name=na)
v1.save()
v2=k.split(",")
for i in v2:
if i:
form2(keyskills=i,na_id=v1.id).save()
return HttpResponseRedirect('/add')
else:
s=form2.objects.all()
return render(request,"search.html",{'s':s})
def search(request):
var=""
arr=[]
if request.method=='POST':
s1=request.POST.get("input1")
s1=s1.split(",")
for i in s1:
if i :
arr+=form2.objects.filter(keyskills=i)
var=arr
return render(request,"searchresult.html",{'var1':var})
searchresult.html
<html>
<head>
</head>
<body>
<div id="div1">
{% for i in var1 %}
<p>{{i.na.name}}</p><br>
{% endfor %}
</div>
<form action="." method="post">{% csrf_token %}
<input type="text" name="input1">
<input type="submit" value="search">
</form>
</body>
</html>
誰能明白呢..在此先感謝
你爲什麼試圖將你的'表格'定義爲模型? –
抱歉,我沒有找到你 – Madanika
如果我正確理解Alex,他暗示「form1」不是模型的好名字。這可能會令人困惑,而且不具描述性。 模型應該大致對應於數據庫表。理想情況下,每個人都應該對應某種真實世界的實體。 –