当前位置:  开发笔记 > 编程语言 > 正文

如何在Django中创建查找?

如何解决《如何在Django中创建查找?》经验,为你挑选了1个好方法。

我有一个问题模型和表单,这个模型中的一个字段是userid = ForeignKey(User),这在问题模型上工作得非常好,能够从下拉列表中选择用户.

但是当我想从模型中列出问题时,这是一个棘手的问题,这是从Users表中查找用户名的最佳方法吗?因为在这一点上我不能下拉!

我想要一个简单的事情,例如

问题标题问题:查找用户名



1> jpwatts..:

你的字段名称(userid而不是user)让我觉得你可能会对Django的行为感到困惑ForeignKey.

如果您定义这样的模型:

from django.contrib.auth.models import User
from django.db import models

class Question(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=100)
    ...

    def __unicode__(self):
        return self.title

然后实例Question化为question:

>>> question.user # the `User` instance


>>> question.user_id # the user's primary key
1

看起来你可能期望question.userid成为用户的主键,而不是它实际上是什么:User实例本身.访问时question.userid,会执行数据库查找,但Django会使用值自动完成question.userid_id.我会重命名userid字段user以避免混淆.

有了这个,我认为你要做的是列出问题及其相关用户.如果是这种情况,请在模板中执行以下操作:

    {% for question in questions %}
  1. {{ question }} asked by: {{ question.user }}
  2. {% endfor %}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有