django實踐筆記

'function' object has no attribute 'objects'

這個錯誤發生在views.py內函數名和model名重名的情況:
def worker(request):
	table=worker.objects.all()
	return render(request,'table.html',{'table':table})

由於python獲得了第一行函數worker,第二行的數據表worker就被自動重寫爲函數,則其原有的objects.all()函數就不能使用。
須改爲:
def worker_list(request):
	table=worker.objects.all()
	return render(request,'table.html',{'table':table})


coercing to Unicode: need string or buffer, list found

類型錯誤,發生在models.py內返回函數的返回類型寫錯時。
class score(models.Model):
	worker_id=models.ForeignKey(worker)
	score=models.IntegerField()
	def __unicode__(self):
		return [self.worker_id,self.score]
從上代碼看出,return的是一組list,但函數寫爲__unicode__(),則python返回的時候會發生類型錯誤。
我是將其改爲:
class score(models.Model):
	worker_id=models.ForeignKey(worker)
	score=models.IntegerField()
	def __list__(self):
		return [self.worker_id,self.score]
但這個在頁面上現實還是有問題的,不會認出list列表內的元素,而是直接返回一個list object,這個在以後會進一步改進。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章