Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 为什么可以';我不能从rss订阅源中获取一个日期并将其设置为我的Django模型吗?_Python_Django_Rss_Feedparser - Fatal编程技术网

Python 为什么可以';我不能从rss订阅源中获取一个日期并将其设置为我的Django模型吗?

Python 为什么可以';我不能从rss订阅源中获取一个日期并将其设置为我的Django模型吗?,python,django,rss,feedparser,Python,Django,Rss,Feedparser,我正在使用提要解析器从rss提要创建内容。是这样的: import feedparser def parse_rss(rss_url): return feedparser.parse(rss_url) def generate_content_from_feed(feed): parsed_feed = parse_rss(feed.rss_url) for item in parsed_feed['items']: if not Content.

我正在使用提要解析器从rss提要创建内容。是这样的:

import feedparser

def parse_rss(rss_url):
    return feedparser.parse(rss_url)

def generate_content_from_feed(feed):
    parsed_feed = parse_rss(feed.rss_url)

    for item in parsed_feed['items']:
        if not Content.objects.filter(link=item['link']).exists():
            content = Content.objects.create(
                title=item['title'],
                link=item['link'],
                description=item['description'],
                pub_date=item['published'],
                category=item['category'],
                feed=feed,
            )
            if item['enclosure']:
                content.media_url = item['enclosure']['url']
                content.media_type = item['enclosure']['type']
            content.save()
现在我不能完全确定上面的代码是否正常工作,因为我无法测试它

在mymodels.py中,我有以下两种型号:

class Feed(models.Model):
    rss_url = models.URLField()

    def save(self, *args, **kwargs):
        super(Feed, self).save(*args, **kwargs)
        generate_content_from_feed(self) # Generating the content

class Content(models.Model):
    title = models.CharField(max_length=500)
    link = models.URLField()
    description = models.TextField()
    pub_date = models.DateTimeField(default=None)
    category = models.CharField(max_length=500, blank=True)
    media_url = models.URLField(blank=True) # Attached media file url
    media_type = models.CharField(max_length=50, blank=True)
    feed = models.ForeignKey(Feed, related_name='content_feed')
如果您想知道,在保存提要时,该提要中的内容将生成并保存为我的数据库中的内容对象。至少这是我想做的。但是,当我保存提要时,会出现如下错误:

ValidationError at /admin/myapp/feed/add/
[u"'Fri, 08 Apr 2016 14:51:02 +0000' value has an invalid format. It   must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

如何解决此问题?而且,我不是专家,有谁能告诉我,我的“从订阅源生成内容”方法是否存在问题?非常感谢。

可能有更好的方法,但是您的代码应该是这样的

a = 'Fri, 08 A`enter code here`pr 2016 14:51:02 +0000'

dates = re.search(r'(\w+), (\d+) (\w+) (\d{4}) (\d+):(\d+):(\d+) ([\w+]+)', a)
# YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

day_str = dates.group(1)
day = dates.group(2)
month_str = dates.group(3)
year = dates.group(4)
hour = dates.group(5)
minute = dates.group(6)
second = dates.group(7)

new_date = "%s-%s-%s %s:%s:%s" % (year, month_str, day, hour, minute, second)
print(new_date)

>>> 2016-Apr-08 14:51:02

如果您再次遇到问题,尝试将
Apr
转换为日期编号可能很好,我想知道,为什么不能测试它?我建议您在代码中调试,并在保存之前准确查看变量的内容。