私は、ペットのユーザーが自分のペットについてボードを作成し、ボードに写真を表示できるシンプルなアプリに取り組んでいます。
私は、ユーザーが自分のボードをクリックして、自分のペットの写真をすべて表示する自分のボードにリダイレクトできる機能を作成しようとしています。
ユーザーをボードにリダイレクトするようにテンプレートを構成しようとすると、エラーが発生します。
Reverse for 'Boat' with arguments '('',)' and keyword arguments '{}' not found.
Django Version: 1.4.3
Exception Type: NoReverseMatch
Exception Value: Reverse for 'Boat' with arguments '('',)' and keyword arguments '{}' not found.
Error during template rendering
In template C:\o\mysite\pet\templates\edit.html, error at line 14
13 {% for b in board %}
14 <li><a href ="{% url world:Boat animal.id %}">{{ b.name }}</li>
ユーザーがボードをクリックすると、問題はここにあると思います。私のURLconfはanimal.idをキャプチャし、それを私のボート関数に渡しますが、何がうまくいかなかったのかわかりません
<li><a href ="{% url world:Boat animal.id %}">{{ b.name }}</li>
私のedit.html
<h4>My Boards</h4>
{% if board %}
<ul>
{% for b in board %}
<li><a href ="{% url world:Boat animal.id %}">{{ b.name }}</li>
{% endfor %}
</ul>
{% endif %}
私のメインURLconf
urlpatterns = patterns('',
url(
r'^admin/',
include(admin.site.urls)
),
url(
r'^',
include('pet.urls',
namespace = 'world')
),
ペットアプリのURLconfの一部
url(
r'^(?P<animal_id>\d+)/$',
'pet.views.Boat',
name = 'Boat',
),
私のviews.pyの私の部分
def Profile(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('world:LoginRequest'))
if request.method == 'POST':
form = PersonForm(request.POST, request.FILES)
if form.is_valid():
person = Person.objects.get(user=request.user)
person.image = form.cleaned_data['image']
person.name = form.cleaned_data['name']
person.save()
return render(request,'profile.html',{'form': PersonForm()})
def Boat(request ,animal_id):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('world:LoginRequest'))
picture = Picture.objects.filter(board=animal_id)
return render(request,'boat.html',{'picture':picture})
助けてくれてありがとう :]
私のviews.pyの詳細
def Display(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('world:LoginRequest'))
board = Board.objects.filter(user=request.user)
person = Person.objects.get(user=request.user)
return render(request,'edit.html',{'board':board ,'person':person})
私のmodels.py
class Person(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
following = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True, null=True)
def __unicode__(self):
return self.name
class Board(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name