у меня есть эти две модели
class Pv(models.Model):
IA_System_Code = models.AutoField(primary_key = True)
IA_code = models.CharField(max_length = 150)
Date_recieved = models.DateField()
Pv_reference = models.CharField(unique = True, max_length = 120)
Payee = models.CharField(max_length=500)
Description = models.CharField(max_length = 500)
class Meta():
ordering = ["-IA_System_Code"]
def __str__(self):
return self.Description
class staff(models.Model):
staff_id = models.CharField(max_length = 150)
name = models.CharField(max_length = 300)
rank = models.CharField(max_length = 300)
amount = models.DecimalField(max_digits=19, decimal_places=2)
Pv_reference = models.ForeignKey('Pv',on_delete=models.CASCADE)
def __str__(self):
return self.name
Теперь я хочу иметь возможность нажать кнопку просмотра зарегистрированного PV в таблице, она должна открыть страницу сведений с идентификатором, переданным в arg и соответствующая запись в персонале также должна отображаться в той же подробной форме в виде таблицы
вот моя регистрационная таблица pv html
registedpv. html
<table id="example2" class="table table-hover">
<tr>
<thead class="thead-light success">
<tr>
<th scope="col">Pv Reference</th>
<th scope="col">Description</th>
<th scope="col">IA code</th>
<th scope="col">Gross Amount(GH₵) </th>
<th scope="col">Tax (GH₵) </th>
<th scope="col">Net Amount (GH₵) </th>
<th scope="col">Accountable impress</th>
<th scope="col">Status</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
{% for pv in pvs %}
<tr>
<td>{{pv.Pv_reference}}</td>
<td>{{pv.Description}}</td>
<td>{{pv.IA_code}}</td>
<td> {{pv.Gross_amount}} </td>
<td> {{pv.Withholding_tax}}</td>
<td> {{pv.Net_amount}}</td>
<td>{{pv.Acc_Impress}}</td>
<td>
{% if pv.Status == 'Completed' %}
<span class="badge bg-success">{{pv.Status}}</span>
{% elif pv.Status == 'Returned' %}
<span class="badge bg-warning">{{pv.Status}}</span>
{% else %}
<span class="badge bg-danger">{{pv.Status}}</span>
{% endif %}
</td>
<td>
<a class="btn btn-xs btn-sm accent-white" href="{% url 'pv:pv-detail'
pk=pv.IA_System_Code %} " style="background-color:gray; color:white;">View</a>
</td>
</tr>
{% empty %}
<tr>
<td colspan="7" class="text-center ">No Registerd Pvs</td>
</tr>
{% endfor %}
</tbody>
</table>
теперь вы можете видеть, что есть URL с pk = pv.IA_System_Code в качестве параметра
Отредактировано вот подробности. html
<div class="col-md-10 mx-auto" >
<!-- general form elements -->
<h3 class=" text-center text-bold">PV DETAILS </h3>
<div class="card ">
<div class="card-header bg-success">
<h5> IA SYSTEM CODE :# {{ pvs.IA_System_Code }} </h5>
</div>
<div class="card-body">
<div class="col-md-12">
<dl class="row">
<dt class="col-sm-3">IA code:</dt>
<dd class="col-sm-3">{{ pvs.IA_code }}</dd>
<dt class="col-sm-3">Date recieved:</dt>
<dd class="col-sm-3">{{ pvs.Date_recieved }}</dd>
<dt class="col-sm-3">Pv reference:</dt>
<dd class="col-sm-3">{{ pvs.Pv_reference }}</dd>
<dt class="col-sm-3">Type of account: </dt>
<dd class="col-sm-3">{{ pvs.Type_of_accounts }}</dd>
<dt class="col-sm-3">Account code:</dt>
<dd class="col-sm-3">{{ pvs.Account_code }}</dd>
<dt class="col-sm-3">Source of Funding:</dt>
<dd class="col-sm-3">{{ pvs.Source_of_Funding }}</dd>
<dt class="col-sm-3">Cost center:</dt>
<dd class="col-sm-3">{{ pvs.Cost_center }}</dd>
<dt class="col-sm-3">Description:</dt>
<dd class="col-sm-3">{{ pvs.Description }}</dd>
</dl>
</div>
<hr></hr>
<div class="col-md-12">
<dl class="row">
<dt class="col-sm-3">Accountable Impress:</dt>
<dd class="col-sm-3">{{ pvs.Acc_Impress }}</dd>
<dt class="col-sm-3">Gross Amount:</dt>
<dd class="col-sm-3">{{ pvs.Gross_amount }}</dd>
<dt class="col-sm-3">Status:</dt>
{% if pvs.Status == 'Completed' %}
<dd class="col-sm-3"><span class="badge bg-success">{{pvs.Status}}</span></dd>
{% elif pvs.Status == 'Returned' %}
<dd class="col-sm-3"> <span class="badge bg-warning">{{pvs.Status}}</span></dd>
{% else %}
<dd class="col-sm-3"><span class="badge bg-danger">{{pvs.Status}}</span></dd>
{% endif %}
<!-- <dd class="col-sm-3">{{ pvs.Status }}</dd> -->
<dt class="col-sm-3">Withholding Tax:</dt>
<dd class="col-sm-3">{{ pvs.Withholding_tax }}</dd>
<dt class="col-sm-3">Date Returned:</dt>
<dd class="col-sm-3">{{ pvs.Date_returned }}</dd>
<dt class="col-sm-3">Net Amount:</dt>
<dd class="col-sm-3">{{ pvs.Net_amount }}</dd>
<dt class="col-sm-3">Remarks:</dt>
<dd class="col-sm-3">{{ pvs.Remarks }}</dd>
</dl>
<hr>
<table class="table table-striped table-sm" id="my_friends">
<thead>
<tr>
<th>Staff Id</th>
<th>Name</th>
<th>Rank</th>
<th>Amount (GHC)</th>
</tr>
</thead>
<tbody>
{% for benefit in pvs.staff_set.all %}
<tr>
<td>{ benefit.staff_id }}</td>
<td>{{ benefit.name }}</td>
<td>{{ benefit.rank }}</td>
<td>{{ benefit.amount }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="card-footer text-center ">
<div class="text-center">
<a class="btn btn-success accent-white " href="{% url
'pv:pvupdate' pk=pvs.IA_System_Code %}">Update Pv</a>
</div>
</div>
</div>
</div>
Теперь у меня вопрос: есть ли способ также вытащить все относящиеся данные в модели персонала в таблицу на той же подробной форме? Здесь представлены представления
views.py
#detail page view
class HonDetailView(LoginRequiredMixin,DetailView):
model = models.Pv
template_name = 'pv/detailpv.html' # state the html file this view class is controling
context_object_name = 'pvs'
#for the registerd pv
class PvList(LoginRequiredMixin,ListView):
template_name = 'pv/registeredpv.html'
context_object_name ='pvs'
model = models.Pv
paginate_by = 5
today = datetime.datetime.now()
queryset = Pv.objects.all().filter(Date_recieved__year=today.year).order_by('-IA_System_Code')
Кажется, я не знаю, что делаю. любая помощь будет высоко ценится.