Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过Manager访问Django自定义模型返回空集_Python_Django_Django Models_Sqlite - Fatal编程技术网

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修复了这个错误,但这不是别的问题,也不是现在的问题,您的解决方案似乎已经修复了它:)再次感谢。