2013-03-09 3 views
1

Я работаю над простым приложением. Мое приложение позволяет пользователю создавать учетную запись и добавлять доски.Django all() получил неожиданный аргумент ключевого слова 'user'

Я пытаюсь получить все платы, созданные пользователем и отображаемые на шаблоне, без получения этой ошибки.

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) 

Мой models.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 %} 

enter image description here

ответ

3

все() - все. Если вы хотите, чтобы запрос, основанный на использовании значения фильтра()

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 %} 
+0

ваше мнение хорошее сейчас. Хорошо видеть коды, которые устроены, простые и маленькие. – catherine

+0

Я пробовал свой ответ раньше, но он не отображает все доски. – donkeyboy72

+0

Есть ли у вас данные на борту, у которых есть пользователь? – catherine

2

Чтобы получить все с тем, где user является request.user, вы должны использовать метод filter. Итак, вместо этого:

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

Надеюсь, это исправит!

+0

Да, я пробовал это раньше. Он не отображает все платы. – donkeyboy72

Смежные вопросы