現在、 django-podcastモジュールを変更して、ポッドキャストの xml ファイルがリクエストごとに生成されるのではなく、静的に提供されるようにしようとしています。
エピソードが変更、作成、または削除されるたびにチャンネルの xml ファイルを書き直そうとしています。そのために、django シグナルを使用しています。私がやりたいことは、このようなものです...
from django.db.models.signals import post_save, post_delete
from django.template.loader import render_to_string
def update_xml_file(sender, **kwargs):
f = open('channelrss.xml', 'w')
f.write(render_to_string('podcast/show_feed.html', {'object': sender.show}))
f.close()
class Show(models.Model):
...
class Episode(models.Model):
post_save.connect(update_xml_file)
post_delete.connect(update_xml_file)
...
show = models.ForeignKey(Show)
...
私が常に直面している問題は、sender.show がReverseSingleRelatedObjectDescriptor
Show クラスの実際のインスタンスではなく、実際のインスタンスではないことです。また、次のようにsender.pkを主キー値として使用して送信者オブジェクトをリロードしようとしました...
Episode.objects.filter(pk=sender.pk)
しかしどうやらsender.pkはproperty object
整数や文字列ではなくaを返し、その値を取得する方法がわからないので、2つの質問があると思います。
Show
に関連付けられているのインスタンスを取得するにはどうすればよいEpisode
ですか? そして、一体何ですか、property object
そしてなぜsender.pkはそれを返しますか?
お早めにご回答いただきありがとうございます。
ジョシュ