这是我的第一个问题,所以我会尽我最大的努力遵守问题指南。我也在学习如何编码所以请ELI5。在
我正在做一个django项目,它将XML解析为django模型。特别是播客XML。在
我的模型中当前有以下代码:
from django.db import models
import feedparser
class Channel(models.Model):
channel_title = models.CharField(max_length=100)
def __str__(self):
return self.channel_title
class Item(models.Model):
channel = models.ForeignKey(Channel, on_delete=models.CASCADE)
item_title = models.CharField(max_length=100)
def __str__(self):
return self.item_title
radiolab = feedparser.parse('radiolab.xml')
if Channel.objects.filter(channel_title = 'Radiolab').exists():
pass
else:
channel_title= radiolab.feed.title
a = Channel.objects.create(channel_title=channel_title)
a.save()
for episode in radiolab.entries:
item_title = episode.title
channel_title = Channel.objects.get(channel_title="Radiolab")
b = Item.objects.create(channel=channel_title, item_title=item_title)
b.save()
在放射学实验室.xml是我从Radiolab Podcast Feed.本地保存的源
因为每当我使用python时,都会运行这段代码管理.py运行服务器时,解析后的xml内容会像我希望的那样发送到我的数据库,但每次运行服务器时都会发生这种情况,这意味着重复的记录。在
我希望有人能帮我找到一种方法,让这一切只发生一次,也希望有一个干燥的机制来添加不同的feed,这样它们就被解析并保存到数据库中,最好是通过表单提交的feed url。在
如果你不想每次都运行,就不要把它放进去模型.py. 唯一属于这里的是模型定义本身。在
对用户在站点上的操作做出响应时发生的事情会进入视图中。或者,如果你想从管理站点完成,它应该在管理员py文件。在
相关问题 更多 >
编程相关推荐