Python 通过Manager访问Django自定义模型返回空集
据我所知,这似乎应该行得通,但实际上不行 我有一个自定义模型:Python 通过Manager访问Django自定义模型返回空集,python,django,django-models,sqlite,Python,Django,Django Models,Sqlite,据我所知,这似乎应该行得通,但实际上不行 我有一个自定义模型: 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 = mod
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”中包含的用户模型
当我创建一个提要时,例如
feed = Feed(link, sDate, eDate)
feed.save()
(或者类似的一个指定了用户的)它似乎将其存储在数据库中(我得到它的PK,它的PK一直在增加),但是“Feed.objects.all()”返回一个空列表。尝试按现有pk进行筛选也会返回一个空列表,尝试获取()现有pk会导致以下错误
TypeError: __init__() takes at most 5 arguments (6 given)
看看我应该怎样,似乎我已经做了我应该做的一切,但情况显然不是这样…你是否尝试过命名参数,例如
feed = Feed(link=link, startDate=sDate, endDate=eDate)
您是如何使用get()的?它还应与命名参数一起使用,例如:
Feed.objects.get(pk=6)
哇
为什么要重写模型的\uuuuu init\uuuu
?这样做的理由很少,如果你这样做了,你必须绝对保持界面不变——因为每次django从db中提取一个模型时都会调用\uuuu init\uuuu
(这就是为什么你调用.get()
时会出现错误)
您希望通过\uuuu init\uuuu
实现什么
您可能只需要删除\uuuu init\uuuu
,然后就可以用普通的django方法创建提要对象:
feed = Feed(link=link, startDate=sDate, endDate=eDate)
该行将创建所需的正确提要对象。我刚刚尝试了命名参数,但仍然得到相同的结果。是的,这就是我尝试get的方式,但是我得到了提到的错误。谢谢,成功了。如果我没记错的话,我们得到了一个错误,我们通过重写init修复了这个错误,但这不是别的问题,也不是现在的问题,您的解决方案似乎已经修复了它:)再次感谢。