0

Здесь я использовал 4 модели, одна из которых - базовые модели, еще три - производная модель, полученная из базовых моделей. Я хочу фильтровать данные между этими тремя моделями, в которых ссылочный идентификатор является общим. Я добавляю код ниже для вашей справки.Django Данные фильтра из нескольких моделей

models.py

class User(models.Model): 
    name = models models.CharField(max_length=20) 

class JSDetails(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    visiblity = models.BooleanField(default=True) 

class JSPersonal(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    JS = models.ForeignKey(JSDetails, unique=True) 
    country = models.CharField(max_length=100) 

class JSSkills(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    JS = models.ForeignKey(JSDetails, unique=True) 
    skill = models.CharField(max_length=100) 

views.py

def Result(request): 
    skills = request.GET['skill'] 
    country = request.GET['country'] 
    query = Q(skill__icontains=skills) 
    query1 = Q(country__icontains=country) 
    query2 = Q(visiblity=True) 

Вот эти два ключевых слова (навыки = "питон", страна = "США") и получить матчи или либо один получает матч с выше четырех моделей. Он отображает результат, как имя, умение и страну. Пожалуйста, помогите мне.

ответ

1
def Result(request): 
    skills = request.GET['skill'] 
    country = request.GET['country'] 
    query_skills = Q(jsskills__skill__icontains=skills) 
    query_country = Q(jspersonal__country__icontains=country) 
    query_visibility = Q(jsdetails__visiblity=True) 
    users = User.objects.filter(query_skills | query_country, query_visibility) 
    return render_tor_response('sometemplate.html', {'users': users}) 

Затем в шаблоне вы цикл над users вы имеете в контексте.

Смежные вопросы