По сути, мне нужно создать поисковую страницу в django, в которой есть поля ввода, скажем po_no, po_date, description. Пользователь может ввести любую или все детали и нажать кнопку поиска. Следует перейти к другому HTML-шаблону и просмотреть сведения, соответствующие ему введенным данным.
po.html
<form method = "GET" action="{% url 'po_dtl' %}">
<label class="sr-only">PO NUMBER</label>
<input type="text" name="a" class="form-control" placeholder="PO NUMBER" value="{{request.get.a}}">
<label class="sr-only">PO DATE</label>
<input type="text" name="b" class="form-control" placeholder="PO DATE" value="{{request.get.b}}">
<label class="sr-only">DESC</label>
<input type="text" name="c" class="form-control" placeholder="DESCRIPTION" value="{{request.get.c}}">
<label class="sr-only">APPR</label>
<input type="text" name="d" class="form-control" placeholder="APPROVED DATE" value="{{request.get.d}}">
<label class="sr-only">SUPP</label>
<input type="text" name="e" class="form-control" placeholder="SUPPLIER CODE" value="{{request.get.e}}">
<label class="sr-only">BUTTON</label>
<button class="btn btn-secondary btn-block mt-4" type="submit">Search</button>
</form>
po_dtl.html
{% if search_results %}
{% for post in search_results %}
PO NO:
<span class="float-right">{{post.po_no}}
</span>
PO date:
<span class="float-right">{{post.po_date|date:"F d, Y"}}</span>
Supplier Code:
<span class="float-right">{{post.sup_code}}</span>
<table>
<thead>
<tr>
<th>Item Code</th>
<th>TAX</th>
<th>Amount</th>
<th>Quantity</th>
</tr>
</thread>
<tbody>
<tr>
<td>{{post.item_code}}</td>
<td>{{post.tax}}</td>
<td>{{post.amt}}</td>
<td>{{post.qty}}</td>
</tr>
</tbody>
</table>
{% endfor %}
{% endif %}
views.py
def po_head(request):
if request.method == 'GET':
p_no = request.GET.get('a')
date = request.GET.get('b')
desc = request.GET.get('c')
ap_date = request.GET.get('d')
s_code = request.GET.get('e')
search_results = po_detail.objects.filter(Q(po_no=p_no)|Q(po_date__iexact=date)|Q(sup_code=s_code))
return render(request,'erp/po_dtl.html',{'search_results':search_results})
else:
return render(request,'erp/po.html',{})
@login_required
def po_dtl(request , po_no):
context = {
'posts' : po_detail.objects.all()
}
return render(request,'erp/po_dtl.html',context)
@login_required
def item(request):
return render(request,'erp/item.html',{})
models.py
описание взято из модели item_code, на который ссылается внешний ключ
class po_head(models.Model):
po_no = models.IntegerField(primary_key=True)
po_date = models.DateTimeField(default = timezone.now)
appr_date = models.DateTimeField(default = timezone.now)
class po_detail(models.Model):
po_no = models.IntegerField(default=None)
po_date = models.DateTimeField(default = timezone.now)
sup_code = models.CharField(max_length=10,default=None)
item_code = models.IntegerField(primary_key = True)
tax = models.IntegerField(default=None)
amt = models.IntegerField(default=None)
qty = models.IntegerField(default=None)
po_head = models.ForeignKey('po_head', on_delete=models.CASCADE, default=None)
class Meta:
unique_together = (('po_no', 'item_code'),)
Я получаю ошибки типа, и идея в основном не работает. Пожалуйста, помогите!