0

我之前更改了一些与某些地理位置相关的视图(失败),在恢复以前的视图时,我收到了这个错误:

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 %}

如果有人可以提供有关为什么会发生这种情况的想法,将不胜感激。同样,url 没有改变,这似乎是这个错误的主要原因。

4

1 回答 1

0

好像你没有得到 user.username

试试这个。

 <h2>Welcome <a href="{% url profiles_profile_detail request.user.username %}">{{ request.user.username }}</a></h2>
于 2012-05-26T06:08:57.787 回答