-1

私は質問モデルとフォームを持っています。このモデルのフィールドの1つはuserid=ForeignKey(User)です。これは質問モデルで完全に機能し、ドロップダウンからユーザーを選択できます。

しかし、モデルからの質問をリストしたいときはちょっと難しいです。Users テーブルからユーザー名を検索する最良の方法はどれですか? この時点で私はドロップダウンを持てないからです!

シンプルなものが欲しい

質問のタイトル 質問者:検索ユーザー名

4

2 に答える 2

5

あなたのフィールドの名前 ( の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

そして、 a を次のようにインスタンス化し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>
于 2008-12-23T18:35:56.277 に答える
0

あなたの質問は曖昧だと思います。を指定して特定のインスタンスQuestionに関連するすべてのインスタンスをフェッチする場合は、次のように実行できます。Useruser_name

questions = Question.objects.filter( userid__username='user_name' )

すでにUserインスタンスがあり(たとえば、という変数で保持されているuser)、それに関連するすべてのオブジェクトをフェッチしたいQuestion場合は、次のようにしてそれらを取得できます。

questions = user.question_set.all()
于 2008-12-23T06:20:27.900 に答える