2017-02-25 48 views
0

我們需要在Django如何檢索模型的特定屬性,在Django

models.py檢索的特定房屋名稱的所有球員的名字:

class player(models.Model): 
    """ 
    Model representing a book genre (e.g. Science Fiction, Non Fiction). 
    """ 
    name = models.CharField(max_length=100, help_text="Enter a players name") 
    Id = models.CharField(primary_key=True,max_length=100, help_text="Enter a players Id") 
    Num_matches = models.IntegerField() 
    Num_baskets = models.IntegerField() 
    house_name = models.ForeignKey('House_name',on_delete=models.SET_NULL, null=True) 

views.py:

def shivalik(request): 
    queryset = player.objects.all().filter(house_name='shivalik') 
    return render(request,'shivalik.html',{'queryset': queryset}) 

shivalik.html:

{% extends "basic.html" %} 

{% block content %} 
<h2><li>{{queryset.name}}</li></h2> 
{% endblock %} 

錯誤:

ValueError at /bb/shivalik/ 
invalid literal for int() with base 10: 'shivalik' 
Request Method: GET 
Request URL: http://127.0.0.1:8000/bb/shivalik/ 
Django Version: 1.10.5 
Exception Type: ValueError 
Exception Value:  
invalid literal for int() with base 10: 'shivalik' 

回答

0

這是因爲用於intmodels.ForeignKey,但不string值。你應該返回player.objects.all().filter(house_name=<int>)

如果您需要house_name的特定名稱,您應該這樣做;例如在你的models.py

class House_name(models.Model): 
    name = models.CharField(max_length=200) 
    .... 

然後在你的queryset;

player.objects.filter(house_name__name='shivalik')