1
我一直在嘗試生成未被用戶評審的書籍列表,即他/她沒有爲其撰寫評論的書籍。下面是我的models.py的重要細節:如何正確訪問django數據庫中的數據?
class book(models.Model):
name = models.CharField(max_length=100)
isbn = models.CharField(max_length=15)
author = models.CharField(max_length=120)
year = models.CharField(max_length=15)
genre_name = models.IntegerField()
rating = models.IntegerField()
description = models.CharField(max_length=2000)
img = models.ImageField()
def __str__(self):
return self.name
class reviews(models.Model):
name = models.CharField(max_length=150)
bookid = models.IntegerField()
review = models.CharField(max_length=750)
rating = models.IntegerField(default=0)
def __str__(self):
return self.name
所以,我一直在努力首先得到用戶已審閱像這樣的書:
books1 = reviews.objects.filter(name=username)
而獲得本本的數據庫,我做了以下內容:
allb = book.objects.all()
最初,我只是隨機的range(1,132)
和生成的5個號碼存儲他們陣randb
,像這樣的:
randb = []
for i in range(0,5):
randb.append(randint(1,132))
再後來這些鏈接產生的數字與我在allb
在HTML部分檢索到的書籍數據庫。
我主要關心的是,當我這樣做時,我最終得到了已經被用戶查看過的書籍,只是因爲我沒有給出任何條件。
注意:我只想檢索那些用戶未查看過的書籍ID。
此外,我試着做以下,以過濾出來:
books1 = reviews.objects.filter(name=username)
allb = book.objects.all()
randb = []
reviewed_books = books1.bookid /*I get error in this line: 'QuerySet' object has no attribute 'bookid'*/
count = 0
for i in range(0,132):
if i not in reviewed_books
randb.append(randint(1,132))
count = count + 1
if count == 5
break
我不知道如何使該行的工作(在上面的代碼中的註釋行)。需要建議和一些代碼片段來使我的代碼工作。
預先感謝您:)
編輯:(我忘了冒號「:」如果之後的語句)
books1 = reviews.objects.filter(name=username)
allb = book.objects.all()
randb = []
reviewed_books = books1.bookid /*I get error in this line: 'QuerySet' object has no attribute 'bookid'*/
count = 0
for i in range(0,132):
if i not in reviewed_books:
randb.append(randint(1,132))
count = count + 1
if count == 5:
break