django получение данных из двух моделей с внешним ключом - PullRequest
1 голос
/ 20 июня 2020

Я новичок в программировании django, и у меня есть разработанные модели

class Client(models.Model):
    lastname = models.CharField(max_length=255)
    firstname = models.CharField(max_length=255)
    middlename = models.CharField(max_length=255)
    accountant = models.ForeignKey(User, on_delete=models.DO_NOTHING)

    def __str__(self):
        return self.lastname + ' ' + self.firstname + ' ' + self.middlename + ' | ' + str(self.accountant) + ' | ' + str(self.id)

    def get_absolute_url(self):    
        return reverse('home')

class Consultation(models.Model):
    accountant = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    clientid = models.ForeignKey(Client, on_delete=models.DO_NOTHING)
    concern = models.CharField(max_length=255)

    def __str__(self):
        return str(self.clientid) + ' | ' + str(self.accountant)

    def get_absolute_url(self):
        return reverse('client_details.html')

, и моя проблема в представлениях с этим кодом

def ConsultationUpdateView(request, pk):
    consultation = Consultation.objects.filter(id=pk)
    client = Client.objects.filter(id=consultation.clientid)
    return render(request, 'client_consultationupdate.html', {'client':client, 'consultation':consultation}) 

Первый есть, согласно проверке с полученными значениями «консультации», у него было это

<QuerySet [<Consultation: Chad Milky Sugar | will | 1 | will>]>

, и в этом наборе запросов нет поля «беспокойство», поэтому значение поля «беспокойство» не отображается в моем HTML страница? Если да, то как передать на страницу значение поля проблемы? (Кстати, сейчас я работаю с частью редактирования, поэтому мне нужно передать на страницу значение поля "проблема")

{% extends 'base.html' %}    
{% block title %}Update Concern{% endblock %}
{% block content %}

<div class="form-group">
<form method="POST">
    {% csrf_token %}
    <div class="col-6 col-sm-6 col-md-6 col-lg-4">
        <small for="concern">Concern</small>
        <input type="text" class="form-control" placeholder="Concern" name="concern" value="{{ concern }}">             
    </div>
    <button class="btn btn-secondary">Add</button>
</div>

{% endblock %}

Второй, проблема с этой строкой кода

client = Client.objects.filter(id=consultation.clientid)

где в сообщении об ошибке говорится, что «объект QuerySet не имеет атрибута clientid». Есть ли способ узнать ценность клиента из консультации и использовать его для фильтрации моего второго фильтра?

Спасибо заранее ...

...