こんにちは、私は django を初めて使用します (Python ではありません)。基本的には、1) 検索フォームで顧客を検索する 2) 2 つのドロップダウン メニューで検索する - 1 つ目は組織、2 つ目は組織です。 1 つは特定の顧客です 3) OTRS mysql データベースに接続され、テーブル customer_user から顧客情報を読み取ります - この部分をカバーしました 現在、Web ページを作成し、検索フォームと検索結果を結果でカバーしています。私が抱えている問題は、結果がテーブルの first_name と last_name の部分だけになると想像したことです。その後、リンクをクリックすると、詳細情報が開きます。今、これは私が立ち往生している部分です。リンクを指定する方法がわかりません。同じ Web ページにさらに多くのものを追加するだけです。リンクだけで正しい構文が欠落していると思います+ビューファイルの別の関数。とにかく、ここに私のファイルがあります:
models.py
class CustomerUser(models.Model):
id = models.IntegerField(primary_key=True)
login = models.CharField(unique=True, max_length=200)
email = models.CharField(max_length=150)
customer_id = models.CharField(max_length=150)
pw = models.CharField(max_length=64, blank=True)
title = models.CharField(max_length=50, blank=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
phone = models.CharField(max_length=150, blank=True)
fax = models.CharField(max_length=150, blank=True)
mobile = models.CharField(max_length=150, blank=True)
street = models.CharField(max_length=150, blank=True)
zip = models.CharField(max_length=200, blank=True)
city = models.CharField(max_length=200, blank=True)
country = models.CharField(max_length=200, blank=True)
comments = models.CharField(max_length=250, blank=True)
valid_id = models.IntegerField()
create_time = models.DateTimeField()
create_by = models.IntegerField()
change_time = models.DateTimeField()
change_by = models.IntegerField()
class Meta:
managed = False
db_table = 'customer_user'
ビュー.py
from django.shortcuts import render
from models import CustomerUser
from django.http import HttpResponse
def search_form(request):
#global request
return render(request, 'korisnici.html')
def search(request):
global q
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
korisnik = CustomerUser.objects.filter(first_name__icontains=q)
korisnik1 = CustomerUser.objects.filter(last_name__icontains=q)
if korisnik:
return render(request, 'rezultati.html', {'korisnik': korisnik, 'query': q})
elif korisnik1:
return render(request, 'rezultati.html', {'korisnik1': korisnik1, 'query': q})
else:
return render(request, 'korisnici.html', {'error': True})
def rezultat(request):
global q
if q:
#q = request.GET['q']
korisnik = CustomerUser.objects.filter(first_name__icontains=q)
korisnik1 = CustomerUser.objects.filter(last_name__icontains=q)
if korisnik:
return render(request, 'rezultat.html', {'korisnik': korisnik, 'query': q})
elif korisnik1:
return render(request, 'rezultat.html', {'korisnik1': korisnik1, 'query': q})
else:
return render(request, 'korisnici.html', {'error': True})
およびテンプレート ファイル:
<html>
<head>
<title>MAI KORISNICI</title>
</head>
<body>
<form action="/search/" method="get">
<input type="text" name="q">
<input type="submit" value="Pretraži">
</form>
<p>Ključna riječ: <strong>{{ query }}</strong></p>
{% if korisnik %}
<p>Pronađeno je {{ korisnik|length }} trgovina.</p>
<ul>
{% for book in korisnik %}
<li><a href={{ rezultat}}>{{ book.first_name }} {{ book.last_name }}</a></li>
{% endfor %}
</ul>
{% elif korisnik1 %}
<p>Pronađeno je {{ korisnik1|length }} trgovina.</p>
<ul>
{% for book in korisnik1 %}
<li><a href="placeholder">{{ book.first_name }} {{ book.last_name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>Nijedan korisnik ne zadovoljava Vaš upit.</p>
{% endif %}
</body>
</html>
私の問題は、私が思うこの部分です:
{% for book in korisnik1 %}
<li><a href="placeholder">{{ book.first_name }} {{ book.last_name }}</a></li>
{% endfor %}
クリックした特定の結果から変数を取得し、同じデータベースからその顧客に関する詳細情報を取得/表示する方法がわかりません (したがって、first_name と last_name だけでなく、メール、pw、コメントなども...) .
私は現在、www.djangobook.com の第 7 章を読んでいて、ちょっとイライラしています... この特定の部分がどのように行われているかがわかりません。