1
我有兩個模型用戶,細節和技能。在技能表中可以爲特定用戶存儲「n」個技能。在過濾時顯示唯一的用戶詳細信息,但不顯示按鍵技能。我用一對一的現場技能模型,但多個用戶是不能接受的,所以我使用foriegn鍵that.For例如..Django過濾來自不同模型的數據
User Table
id | name
---|-----
1 | abc
Details table
id | user_id | city
---|---------|-----
1 | 1 | NY
Skills Table
id | user_id | skill
---|---------|-----
1 | 1 | C
2 | 1 | c++
3 | 1 | java
我想基於技能或城市進行過濾。如果它匹配任何一個應該顯示整個細節。我想補充模型和視圖請分享你的想法
模型
class User(models.Model):
name = models.CharField(max_length=100)
class Details(models.Model):
user = models.OneToOneField(User)
city = models.CharField(max_length=100, blank=True, null=True)
class Skills(models.Model):
user = models.ForeignKey(User)
skill = models.CharField(max_length=100, blank=True, null=True)
意見
search = request.GET['keywords']
searchlist = search.split(",")
list_result= []
for search in searchlist:
for res in User.objects.filter(Q(Skills__skill__icontains=search) | Q(Details__city__icontains=search)):
if not res in list_result:
list_result.append(res)
users = list_result
return render_to_response('Result.html',{'details':users},context_instance=RequestContext(request))
模板
{% for d in details %}
{{ d.name }}
{{ d.Skills.skill }}
{{ d.Details.city }}
{% endfor %}
通過給上面的代碼其作品一切正常,除了技能沒有得到顯示。