我试图从特定网址获取一个context_dictionary,以便在django命令中使用。没有命令的代码返回带有slug和详细信息的模型到站点,假设它是localhost / event / mainevent /。
一旦我想获得用于该网站的上下文字典,我该如何在我的命令中获取它? 到目前为止,我的代码如下:
命令/ MyCommand.py
class Command(BaseCommand):
help = 'Closes the specified poll for voting'
def handle(self, *args, **options):
#Get context processor here
self.stdout.write(event.title)
Models.py
class Event(models.Model):
title = models.CharField(max_length=255, unique=True)
location = models.CharField(max_length=300)
slug = models.SlugField()
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super(Event, self).save(*args, **kwargs)
def __unicode__(self):
return self.title
Views.py
def details(request, event_title_slug):
context_dict = {}
try:
event = Event.objects.get(slug=event_title_slug)
context_dict['event_title'] = event.title
context_dict['event'] = event
except Event.DoesNotExist:
pass
return render(request, 'event_details.html', context_dict)
Urls.py
url(r'^event/(?P<event_title_slug>[\w\-]+)/$', views.details, name='details')
答案 0 :(得分:1)
我不明白这里的上下文词典是什么意思。视图中的上下文用于呈现模板;你不想在你的命令中这样做。无论如何,您在命令中没有URL,因此与视图没有任何关系。
相反,您需要将一个参数(例如slug)传递给您的命令,并使用它来删除事件。 documentation有一个几乎完全符合你想要的例子。