Добрый вечер,
надеюсь, что вы все здоровы в это критическое время!
Я хочу использовать время, чтобы снова поработать над моим django веб-приложением.
На этот раз, помимо отображения всех моих клиентов на странице, я хочу вернуть информацию об одном клиенте, которую я выбрал на веб-сайте.
Я получаю информацию обо всех клиентах в базе данных, чтобы показать на веб-сайте, и когда я использую печать в моем views.py, я вижу всю информацию из одного объекта.
Однако она не будет отображаться в моем шаблоне: (
Здесь мой код (сначала модель):
class PrivateCustomer (models.Model):
WEIBLICH = 'W'
MANNLICH = 'M'
DIVERS = 'D'
KEINEANGABE = 'K'
GENDER =(
(WEIBLICH, 'Weiblich'),
(MANNLICH, 'Maennlich'),
(DIVERS, 'Divers'),
(KEINEANGABE, 'Keine Angabe')
)
kundennummer = models.CharField(max_length=5, null=False, primary_key=True)
vorname = models.CharField(max_length=30, null=False)
nachname = models.CharField(max_length=30, null=False)
adresse = models.CharField(max_length=50, null=False)
postleitzahl = models.CharField(max_length=5, null=False)
stadt = models.CharField(max_length=30, null=False)
geschlecht = models.CharField(max_length=3, null=False, choices=GENDER)
geburtstag = models.DateField(null=True)
telefon = models.CharField(max_length=30, null=True)
mobil = models.CharField(max_length=30, null=True)
email = models.CharField(max_length=80, null=True)
datum = models.DateField(null=False)
# def __str__(self):
# return self.nachname
затем функция в views.py:
def showCustomer(request):
if request.method == 'POST':
kd = request.POST['kundennummer']
customerSingle = PrivateCustomer.objects.filter(kundennummer=kd)
form = PrivateCustomerForm()
customers = PrivateCustomer.objects.all()
print(type(customers[1]))
print(type(customerSingle[0]))
customerSingle = customerSingle[0]
print(customerSingle.nachname)
return render(request, 'basicERP/kunden.html', {'form' : form, 'customers' : customers, 'customerSingle' : customerSingle})
else:
return HttpResponse("fail")
и код моего шаблона:
<div class="suchbereich">
<div class="progress-table-wrap" id="suchtabelle">
<div class="filterbereich">
</div>
<div class="progress-table" id="kundentabelle">
<div class="table-head">
<button onclick="sortTable(0)" class="serial genric-btn default circle" style="font-size:14px; width:50px;">K-Nr.</button>
<button onclick="sortTable(1)" class="country genric-btn default circle" style="font-size:14px; width:150px;">Name</button>
<!--<button onclick="sortTable(2)" class="adresse genric-btn default circle" style="font-size:14px;">Adresse</button>
<button onclick="sortTable(3)" class="visit genric-btn default circle" style="font-size:14px;">Geschlecht</button>
<button onclick="sortTable(4)" class="visit genric-btn default circle" style="font-size:14px;">Geburtstag</button>
<button onclick="sortTable(5)" class="visit genric-btn default circle" style="font-size:14px;">Festnetz</button>
<button onclick="sortTable(6)" class="visit genric-btn default circle" style="font-size:14px;">Mobil</button>
<button onclick="sortTable(7)" class="email genric-btn default circle" style="font-size:14px;">E-Mail</button>-->
<div class="visit genric-btn default circle" style="font-size:14px;">Anzeigen</div>
<div class="visit genric-btn default circle" style="font-size:14px;">Löschen</div>
</div>
{% for customer in customers %}
<div class="table-row" onclick="setActive(this)">
<div class="serial" style="width:50px;">{{customer.kundennummer}}</div>
<div class="country" style="width:150px;">{{customer.nachname}}, {{customer.vorname}}</div>
<!-- <div class="adresse">{{customer.adresse}}, {{customer.postleitzahl}}, {{customer.stadt}}</div>
<div class="visit">{{customer.geschlecht}}</div>
<div class="visit">{{customer.geburtstag}}</div>
<div class="visit">{{customer.telefon}}</div>
<div class="visit">{{customer.mobil}}</div>
<div class="email">{{customer.email}}</div>-->
<button onclick="showCustomer(this)" class="genric-btn primary circle"> Anzeigen</button>
<button onclick="deleteCustomer(this)" class="genric-btn primary circle"> Löschen</button>
</div>
{% endfor %}
</div>
</div>
<div class="anzeigebereich">
<div class="block1">
<p>Adresse: {{customerSingle.nachname}}</p>{{customerSingle}}
<p>PLZ, Ort: </p>{{customerSingle.postleitzahl}}, {{customerSingle.stadt}}
</div>
<div class="block2">
</div>
<div class="block3">
</div>
</div>
</div>
Первая таблица заполняется нормально, я вижу всех клиентов. Когда я звоню {{customerSingle.stadt}}, я ничего не получаю.
Выходные данные для 3 вызовов функции печати в views.py:
<class 'erp.models.PrivateCustomer'>
<class 'erp.models.PrivateCustomer'>
Grünig
Третья строка - это фамилия указанного объекта.
Любой Спасибо за помощь, спасибо!
РЕДАКТИРОВАТЬ
Когда я изменяю свой код в views.py на это:
def showCustomer(request):
if request.method == 'POST':
kd = request.POST['kundennummer']
customerSingle = PrivateCustomer.objects.filter(kundennummer=kd)
form = PrivateCustomerForm()
customers = PrivateCustomer.objects.all()
customerSingle = customers.get(kundennummer=kd)
#print(type(customers[1]))
#print(type(customerSingle[0]))
#customerSingle = customerSingle[0]
mutti = 'hello'
context = {
#'form' : form,
#'customers' : customers,
#'customerSingle' : customerSingle,
'dati': mutti
}
print(customerSingle.nachname)
print('hallo')
return render(request, 'basicERP/kunden.html', context)
else:
return HttpResponse("fail")
Сайт по-прежнему отображается с клиентом информация, но данные 'hello' из переменной dati не отображаются.
Я добавил вторую функцию print (), чтобы проверить, что вызывается нужная функция. Это нормально.
Я не понимаю, как он может правильно отображаться, когда я не передаю переменную customer.