【问题标题】:point a href link to more information in same template django在同一模板 django 中指向指向更多信息的 href 链接
【发布时间】:2013-11-08 18:40:17
【问题描述】:

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

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'

views.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、cmets、. ..)。

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

【问题讨论】:

    标签: django templates variables href


    【解决方案1】:

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

    【讨论】:

    • 这似乎是个主意。我的问题是我的网页设计知识与 css 基础知识有关,因此我不知道这一点:)。我想谷歌会帮助:)
    猜你喜欢
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2012-09-16
    • 1970-01-01
    • 2018-01-01
    相关资源
    最近更新 更多