1

我正在开发一个简单的应用程序。我的应用程序允许用户创建帐户并添加板。

我正在尝试检索用户创建并显示在模板上的所有板,而不会出现此错误。

all() got an unexpected keyword argument 'user'

Traceback:
File "C:\Python26\Lib\site-packages\django\core\handlers\base.py" in get_response
111.                         response = callback(request, *callback_args, **callback_kwargs)
File "C:\o\mysite\pet\views.py" in Display
69.     board = Board.objects.all(user=request.user)

我的模型.py

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

class Person(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    image = models.FileField(upload_to="images/",blank=True,null=True)


    def __unicode__(self):
        return self.name

class Board(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.name

我的部分views.py(问题在这里)

def Display(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('pet.views.LoginRequest'))
    board = Board.objects.all(user=request.user)
    return render(request,'edit.html',{'board':board})

我的edit.html

{% if board %}
<ul>           
    <li>Name: {{ board.name }}</li>

</ul>
{% endif %}

在此处输入图像描述

4

2 回答 2

3

all() 就是全部。如果要根据值查询,请使用 filter()

def Display(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('pet.views.LoginRequest'))
    board = Board.objects.filter(user=request.user)
    return render(request,'edit.html',{'board':board})

{% if board %} 
<ul>  
    {% for b in board %}         
    <li>Name: {{ b.name }}</li>
    {% endfor %}
</ul>
{% endif %}
于 2013-03-09T15:32:50.367 回答
2

要获得所有 where useris request.user,您应该使用该filter方法。所以与其:

board = Board.objects.filter(user=request.user)

希望这能解决它!

于 2013-03-09T15:33:59.433 回答