2011-03-24 10 views
0

が返されます。私が読んだだけで、これはちょうどうまくいくはずですが、そうではありません。マネージャからDjangoカスタムモデルにアクセスすると、空のセット

私はカスタムモデルがあります:

from django.db import models 
from django.contrib.auth.models import * 

class Feed(models.Model): 
    user = models.ForeignKey(User, blank=True, null=True) 
    link = models.CharField(max_length=200) 
    startDate = models.CharField(max_length=8) 
    endDate = models.CharField(max_length=8) 

    def __unicode__(self): 
     return str(self.id) 

    def __init__(self, link, sDate, eDate, user=None): 
     super(Feed, self).__init__() 
     self.link = link 
     self.startDate = sDate 
     self.endDate = eDate 
     self.user = user 

そして私はまた、 'django.contrib.auth.models' に含まUserモデルを使用しています。

フィードを作成すると、データベース内に格納するように見える

feed = Feed(link, sDate, eDate) 
feed.save() 

(または指定したユーザーと同様のもの)(Iが増加し続けてPKを得る)が、「Feed.objects.allは()」空のリストを返します。既存のPKも返すことで、空のリストをフィルタリングしようとすると)(取得するには、既存のPKをしようとすると、私に

TypeError: __init__() takes at most 5 arguments (6 given) 

は私がretrieving objects from custom modelsどうあるべきかを見てみると、次のエラーを与える、私がすべてをやったことが表示されますIすべきですが、それは明らかにそうではありません...

答えて

2

モデルの__init__をオーバーライドする理由を教えてください。これを行うには、いくつかの理由があります。その場合は、__init__がdjangoがdbからモデルの1つを取得するたびに呼び出されるため、インターフェイスを常に同じにしておく必要があります。 .get()

__init__で何を達成したいですか?

あなたはおそらく、あなたの__init__を削除する必要があり、その後、あなたはフィードは通常、ジャンゴの方法オブジェクトを作成することができます。

feed = Feed(link=link, startDate=sDate, endDate=eDate) 

ラインが希望正しいフィードオブジェクトを作成します。

+0

ありがとうございました。私が正しく覚えていれば、__init__を上書きして修正したエラーが出ていましたが、それは他のものであったか、今は問題ではありません。 – bdeniker

0

名前付き引数を試しましたか?

feed = Feed(link=link, startDate=sDate, endDate=eDate) 

get()はどのように使用しましたか?名前付き引数でも使用する必要があります(例:

Feed.objects.get(pk=6) 
+0

名前のついた引数を試してみましたが、それでも同じ結果が得られました。そして、ええ、それは私がgetで試した方法ですが、私は上記のエラーが発生します。 – bdeniker

関連する問題