我有一個問題模型&窗體,這個模型中的字段之一是userid = ForeignKey(用戶),這工作完美的問題模型,能夠從下拉選擇用戶。如何在Django中創建查找?
但有點棘手,當我想列出模型的問題,這是最好的方式查找從用戶名錶的用戶名?因爲在這一點上,我不能有下拉!
我想要一個簡單的東西,例如
問題標題 通過問:查找用戶名稱
我有一個問題模型&窗體,這個模型中的字段之一是userid = ForeignKey(用戶),這工作完美的問題模型,能夠從下拉選擇用戶。如何在Django中創建查找?
但有點棘手,當我想列出模型的問題,這是最好的方式查找從用戶名錶的用戶名?因爲在這一點上,我不能有下拉!
我想要一個簡單的東西,例如
問題標題 通過問:查找用戶名稱
我覺得你的問題含糊其辭。如果你想獲取那些關於給予user_name
特定User
實例的所有Question
情況下,你可以這樣做:
questions = Question.objects.filter(userid__username='user_name')
如果你已經有了一個User
實例(持有,也就是說,在一個叫user
變量)並希望獲取有關的所有Question
對象,你可以得到那些有:
questions = user.question_set.all()
您的字段的名稱(而不是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
<User: username>
>>> question.user_id # the user's primary key
1
它看起來就像你可能預期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>