Gat*_*ath -1 python django lookup
我有一个问题模型和表单,这个模型中的一个字段是userid = ForeignKey(User),这在问题模型上工作得非常好,能够从下拉列表中选择用户.
但是当我想从模型中列出问题时,这是一个棘手的问题,这是从Users表中查找用户名的最佳方法吗?因为在这一点上我不能下拉!
我想要一个简单的事情,例如
问题标题问题:查找用户名
你的字段名称(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
Run Code Online (Sandbox Code Playgroud)
然后实例Question化为question:
>>> question.user # the `User` instance
<User: username>
>>> question.user_id # the user's primary key
1
Run Code Online (Sandbox Code Playgroud)
看起来你可能期望question.userid成为用户的主键,而不是它实际上是什么:User实例本身.访问时question.userid,会执行数据库查找,但Django会使用值自动完成question.userid_id.我会重命名userid字段user以避免混淆.
有了这个,我认为你要做的是列出问题及其相关用户.如果是这种情况,请在模板中执行以下操作:
<ol>
{% for question in questions %}
<li>{{ question }} asked by: {{ question.user }}</li>
{% endfor %}
</ol>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |