0

ユーザーがホワイトボードの画像をクリックすると、画像IDの引数が関数に送信されるという結果を達成しようとしています。

これは例です。これはすべてのユーザー ボードを表示し、ボードをクリックすると、ボード ID を持つユーザーが私の関数にリダイレクトされます。

<h4>My WHiteBoards</h4>
{% if board %} 
<ul>  
    {% for b in board %}         
    <li><a href ="{% url world:Boat b.id %}">{{ b.name }}</li>
    {% endfor %}
</ul>
{% endif %}

私は同じことを達成しようとしていますが、イメージがあります。ユーザーが画像をクリックしたとき。イメージ ID の引数を使用してユーザーを関数にリダイレクトしたいと考えています。私の機能がユーザーを私のプロファイルにリダイレクトするため、それが発生するかどうかはわかりますが、問題はユーザーが画像をクリックしたときにリダイレクトされないことです。その理由は、ハイパーリンクと画像が互いに関連していないためだと思います。

ユーザーが画像をクリックすると、画像 ID の引数でリダイレクトされるように、このエラーを修正するにはどうすればよいですか

<li><a href ="{% url world:Like pet.id %}"><img src= "{{ pet.image.url }}">

私のviews.py

def Boat(request ,animal_id):
        if not request.user.is_authenticated():
            return HttpResponseRedirect(reverse('world:LoginRequest'))

    picture = Picture.objects.filter(whiteboard=animal_id)
    return render(request,'boat.html',{'picture':picture})

URLconf.py

    ),
    url(
        r'^(?P<picture_id>\d+)/$',
        'pet.views.Like',
        name = 'Like'
    ),

私のviews.py

def Like(request,picture_id):
    everyone = Person.objects.all()
    return render(request,'everyone.html',{'everyone':everyone,'follow':True,})

私はこれが理にかなっていることを願っています。

4

1 に答える 1

1

</li></a>の位置が正しくありません。次のようにする必要があります。

<li>
   <a href ="{% url world:Like pet.id %}">
       <img src= "{{ pet.image.url }}" style="cursor:pointer">
   </a>
</li>

cursor:pointerあなたの画像に追加しました

アップデート:

OK、あなたのコードをたどりますlike and boat has the same url address。なぜ同じになるのでしょうか?URL名が異なっていても。ブラウザで上記のアドレス URL に注目してください。どちらも を返しhttp://localhost:8000/1/ます。

同様の URL は次のとおりです。

    url(
        r'^(?P<picture_id>\d+)/$',
        'pet.views.Like',
        name = 'Like'
    ),

    //which return http://localhost:8000/1/ --> 1 is just a sample id

ボートの URL は次のとおりです。

    url(
        r'^(?P<animal_id>\d+)/$',
        'pet.views.Like',
        name = 'Like'
    ),

    //which return also http://localhost:8000/1/ --> 1 is just a sample id

有効にして修正するには、URL アドレスを次のいずれかのように変更する必要があります。

    url(
        r'^like/(?P<picture_id>\d+)/$',
        'pet.views.Like',
        name = 'Like'
    ),

    //which return now as http://localhost:8000/like/1/
于 2013-03-16T07:53:59.693 に答える