2013-05-14 43 views
0

我剛剛開始糾纏於Django。我創建了一個新項目和一個新應用程序。在該應用程序中,我創建了一個模型並激活了管理員。這似乎工作正常。然後,我想使用管理員將一些新記錄添加到數據庫。在前三個表中,這很順利,但在第四個中(稱爲'位置'),我得到此錯誤說:'元組'對象沒有屬性'編碼'。完整的錯誤是在這裏的pastebin:http://pastebin.com/WjZat6NN在Django Admin中添加一條新記錄會產生持續性錯誤

奇怪的是,當我現在回到一般的管理頁面,並希望點擊我剛剛得到錯誤的表,我也得到了錯誤(所以沒有試圖添加任何東西)。

我的問題:爲什麼會發生這種情況?也許我的models.py有問題,所以我也將它粘貼到此消息的下面。

歡迎所有提示!

from django.db import models 

# Create your models here. 
class countries(models.Model): 
    country = models.CharField(max_length=100) 
    def __unicode__(self): 
     return self.country 

class organisationTypes(models.Model): 
    organisationType = models.CharField(max_length=100) 
    def __unicode__(self): 
     return self.organisationType 

class organisations(models.Model): 
    organisationName = models.CharField(max_length=200) 
    organisationType = models.ForeignKey(organisationTypes) 
    countryofOrigin = models.ForeignKey(countries) 
    def __unicode__(self): 
     return self.organisationName 

class locations(models.Model): 
    organisation = models.ForeignKey(organisations) 
    countryofLocation = models.ForeignKey(countries) 
    telNr = models.CharField(max_length=15) 
    address = models.CharField(max_length=100) 
    def __unicode__(self): 
     return self.organisation, self.countryofLocation, self.telNr, self.address 
+2

只是一個音符。您應該遵循標準的命名約定。類名大寫,如大多數語言和類屬性和變量一樣,單詞之間用下劃線('_')分隔。不與camelcase這是你正在使用的。 – 2013-05-14 14:28:25

回答

2

這裏:

def __unicode__(self): 
     return self.organisation, self.countryofLocation, self.telNr, self.address 

你返回一個元組。它期望一個單一的字符串。

改變它的東西是這樣的:

def __unicode__(self): 
     return "%s - %s - %s - %s" % (self.organisation self.countryofLocation, self.telNr, self.address) 
1

問題是最有可能與這條線......

return self.organisation, self.countryofLocation, self.telNr, self.address 

...在那裏你從__unicode__方法返回一個元組。你需要返回一個字符串對象,儘管目前還不清楚它應該是什麼。也許...

return ', '.join((self.organisation, self.countryofLocation, self.telNr, self.address)) 

...?

1

您只能返回一個字符串作爲模型實例的代表。

所以最好使用

return self.organisation + '-'+ self.countryofLocation + '-'+self.telNr+'-'+self.address 
相關問題