私はまだ初心者ですので、どんな助けでも喜んで感謝します。 Djangoを実行する1.10Django:外国のフィールドを照会できません
特定のマネージャに割り当てられたすべてのプロファイルを取得しようとしていますが、クエリセットが常に空になります。
Model.py
BLOCKQUOTE
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=30, blank=False)
last_name = models.CharField(max_length=30, blank=False)
email = models.EmailField(blank=True, help_text='Optional',)
receive_email_notifications = models.BooleanField(default=False)
manager = models.ForeignKey(User, unique=False, blank=True, related_name='+', null=True)
def get_full_name(self):
"""
Returns the first_name plus the last_name, with a space in between.
"""
full_name = '%s %s' % (self.first_name, self.last_name)
return full_name.strip()
def publish(self):
return self.save
def __str__(self):
return str(self.user)
View.py
BLOCKQUOTE
def instrument_list(request):
# pulls all instruments from instrument model
instruments = Instrument.objects.all().order_by('instrument_name')
test = Profile.objects.filter(manager='jenn')
print(test)
# pulls all checklists from checklist model
checklists = Checklist.objects.all().order_by('created_date')
# takes instruments, pushes them to template with variable 'instruments'
return render(request, 'blog/instrument_list.html', {'instruments': instruments, 'checklists': checklists})
私も(非外部キー属性を持つ)単一のプロファイルエントリをフィルタリングし、管理者がデータベースに保存され、出力はこの
BLOCKQUOTE
<User: jenn>
のように見えた方法を印刷しようとした
私はその出力をフィルタリングしようとすると、
はしかし、たとえ、私のクエリセットが出てくる空
BLOCKQUOTE
test = Profile.objects.filter(manager='<User: jenn>')
は、私はデータベースを照合することができます何かに私のフィルタパラメータを調整する必要があると思うが、私はそのフォーマットが何であるかわかりません。私はドキュメントを調べてみたが、探しているものが見つからなかった。
をありがとう!私は今私のミスを完全に見ています。文字フィールドの入力に文字列表現を使用することに慣れてきました。 これが私の問題を解決しました –