更改/还原视图后出现Django错误

时间:2012-05-26 05:47:45

标签: django django-views

我之前更改了一些与某些地理定位相关的视图(失败),并且在恢复之前的视图后,我收到了此错误:

TemplateSyntaxError at /report/all/
Caught NoReverseMatch while rendering: Reverse for 'profiles_profile_detail' with arguments '('',)' and keyword arguments '{}' not found.

奇怪的是,我改变和恢复的视图与此视图或模板无关。 urls.py文件根本没有被触及。应用程序中的所有其他页面都正常显示。我无法弄清问题可能是什么。

查看:

from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import RequestContext
from django.core.urlresolvers import reverse
from myapp.report.models import Story, UserProfile
from myapp.report.forms import ProfileForm, StoryForm
from django.contrib.auth.decorators import login_required
from django.contrib.gis.utils import GeoIP

def all_stories(request):
    if not request.user.is_authenticated():
        return redirect("django.contrib.auth.views.login")
    all_stories = Story.objects.all().order_by("-date")

    return render_to_response("report/storyline.html",
                                {'stories': all_stories},
                                context_instance=RequestContext(request))

def story_detail(request, story_id):
    story = get_object_or_404(Story, id=story_id)
    return render_to_response('report/detail.html',
                            {'story': story},
                                context_instance=RequestContext(request))

@login_required
def submit_story(request):
    if request.method =="POST":
        story_form = StoryForm(request.POST, request.FILES)
        if story_form.is_valid():
            new_story = story_form.save(commit=False)
            new_story.author = request.user
            new_story.save()
            return HttpResponseRedirect("/report/all/")
    else: # GET request
        story_form = StoryForm()
    return render_to_response("report/report.html", {'form': story_form}, context_instance=RequestContext(request))

表格(已更改但已恢复;似乎正在运作):

from django import forms
from stentorian.report.models import UserProfile, Story
from django.contrib.gis.utils import GeoIP

class ProfileForm(forms.ModelForm):
    class Meta:
        model = UserProfile

class StoryForm(forms.ModelForm):
    class Meta:
        model = Story
        exclude = ('author',)

模板:

{% extends 'base.html' %}

{% block page_title %}Stentorian{% endblock %}
{% block headline %}Stentorian Storyline{% endblock %}

{% block content %}

    <div class="row">
    <div class="span12">

        <h2>Welcome <a href="{% url profiles_profile_detail user.username %}">{{ user.username }}</a></h2>


                    

 <div class="accordion" id="story_accordion">
        {% for story in stories %}
            <div class="accordion-group">
                <div class="accordion-heading">
                    <a class="accordion-toggle story-header" data-toggle="collapse" data-parent="#story_accordion" href="#story_{{ story.id }}">
                         {{ story.title }} - {{ story.author.username }} - {{ story.date }}
                    </a>
                </div>
                <div id="story_{{ story.id }}" class="accordion-body collapse{% if forloop.counter0 == 0 %} in{% endif %}">
                    <div class="accordion-inner">
                        <!-- <h2><a href="{% url detail story.id %}">{{story.title}}</a></h2>-->
                        <span><a href="{% url profiles_profile_detail story.author %}">{{story.author}}</a> </span><br>

                        <span>{{story.topic}}</span><br>
                        <span>{{story.zip_code}}</span><br>

                        <span>{{story.date}}</span><br>

                        <p>{{story.copy}}</p>
                    </div>
                </div>
            </div>

            <br>

        {% endfor %}
        </div>

    </div>
</div>

{% endblock content %}

错误即将出现:

{% for story in stories %}

如果有人能够了解为什么会发生这种情况,那么我们将非常感激。同样,网址没有改变,这似乎是导致此错误的主要原因。

1 个答案:

答案 0 :(得分:0)

好像你没有得到user.username

试试这个。

 <h2>Welcome <a href="{% url profiles_profile_detail request.user.username %}">{{ request.user.username }}</a></h2>