當我訪問我的網頁我得到這個錯誤:的Django〜WSGIRequest與形式通過get_context_data方法添加
陷入AttributeError的同時渲染:「WSGIRequest」對象有沒有屬性「得到」
錯誤踢在我的HTML,這是輸出form.as_p
的HTML看起來像這樣行了行了「17」:
{% extends "base.htm" %}
{% block content %}
{% if story_list %}
{% for story in story_list %}
<div class="Story">
<a href="#">{{ story.title }}</a>
</div>
{% endfor %}
{% else %}
<p>No stories are present - enter one below</p>
{% endif %}
<h3>Create a new story</h3>
<form action="/addStory" method="post">
{% csrf_token %}
{{ form.as_p }} ***THIS IS LINE 17***
<input type="submit" value="Submit"/>
</form>
{% endblock %}
問題是我有一個觀點,兩個的東西,並從django教程取代get_context_data方法將第二項添加到django上下文。因爲,恩,這就是我要做的,riiiiiiiiight?
#for showing of the stories!
class StoryShowView(ListView):
model = StoryForm
def get_queryset(self):
return getStoryItemsForUser(self.request)
def get_context_data(self, **kwargs):
context = super(StoryShowView,self).get_context_data(**kwargs)
context['form'] = createNewStoryForm(self.request)
return context
哪裏,好了,方法createNewStoryForm只是做這個:
def createNewStoryForm(request):
return StoryForm(request)
和StoryForm僅僅是這樣的:
class StoryForm(ModelForm):
class Meta:
model = Story
ordering = ['create_date']
與故事模式是正常模式,這可能ISN不是問題的一部分,但是,嘿,我是一個切割和粘貼,所以在這裏!
class Story(models.Model):
user = models.ForeignKey(User)
post = models.ForeignKey(Post)
title = models.CharField(max_length=100)
is_closed = models.BooleanField()
is_random = models.BooleanField() # for uncategorised stories. Only one of these.
result = models.CharField(max_length=20) #how did the relo work out?
create_date = models.DateTimeField('date created')
def __unicode__(self):
return self.title
任何想法我做錯了什麼?
UPDATE: 啊,這是行::
return StoryForm(request)
我把它我可以在「request.POST」或沒有通過,是嗎?
哦,是故事的模型,而不是(派生的)StoryForm? – bharal
是的,因爲'StoryForm'不是一個模型。列表視圖需要一個模型,然後在名爲'object_list'的上下文中返回一個對象,其中包含查詢集中的項目(您可以通過'get_queryset()'重寫)。在你的模板中,你只需遍歷'object_list'。 –