0

嗨,我对 django 很陌生(虽然不是 python),我正在为我们公司编写一个小型 webapp,它基本上是:1)通过搜索表单搜索我们的客户 2)通过 2 个下拉菜单搜索 - 第一个是组织,第二个一个是特定客户 3) 它连接到我们的 OTRS mysql 数据库,并从表 customer_user 中读取客户信息 - 涵盖了这部分目前我创建了一个网页,并获得了搜索表单和搜索结果,其中包含结果。我遇到的问题是我想象结果将只是表的名字和姓氏部分。之后,如果我单击链接,它将打开更多信息。现在这是我坚持的一部分。我不知道如何指向链接,只是在同一网页上添加更多内容。我想我在链接中缺少正确的语法+视图文件中的另一个函数。无论如何,这是我的文件:

模型.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 %}

我不知道如何从我单击的特定结果中检索变量并从同一数据库中检索/显示有关该客户的更多信息(因此不仅是名字和姓氏,还有电子邮件、密码、评论……) .

我目前在 www.djangobook.com 的第 7 章,我有点沮丧......我似乎无法找到这个特定部分是如何完成的。

4

1 回答 1

0

这不是 Django 问题 - 您正在将 CustomerUser 实例传递给模板,因此信息就在那里。当为该链接触发 click 事件时,您只需要一点 javascript 即可显示所有结果。只需将它们存储在一个 div 中,默认隐藏它,并在点击时显示。

于 2013-11-08T19:46:58.560 回答