私の見解では、次のようなURLパラメータを取得します:
date=request.GET.get('date','')
私のURLでは、次のようなurlテンプレートタグでこの方法でパラメータを渡そうとしています:
<td><a href="{% url 'health:medication-record?date=01/01/2001' action='add' pk=entry.id %}" >Add To Log</a></td>
?の後のパラメーター明らかに動作していませんが、getで取得するためにこのデータ値を渡すにはどうすればよいですか?
私はここで答えを見つけました: Djangoの{%url%}テンプレートタグを介してクエリパラメータを渡すことは可能ですか?
最後に追加するだけです:
<a href="{% url myview %}?office=foobar">
For Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
[改善するものは他にありませんが、コードティックを修正すると、愚かなエラーが発生します]
最初に、正規表現のパラメーターを受け入れるようにURLを準備する必要があります:(urls.py)
url(r'^panel/person/(?P<person_id>[0-9]+)$', 'apps.panel.views.person_form', name='panel_person_form'),
したがって、テンプレートでこれを使用します。
{% url 'panel_person_form' person_id=item.id %}
複数のパラメーターがある場合は、次を使用して正規表現を変更し、テンプレートを変更できます。
{% url 'panel_person_form' person_id=item.id group_id=3 %}
テンプレートのURLを追加するだけです:
<a href="{% url 'service_data' d.id %}">
...XYZ
</a>
Django 2.0で使用
これは、3つの簡単な手順で実行できます。
1)url
タグでアイテムIDを追加:
{% for item in post %}
<tr>
<th>{{ item.id }}</th>
<td>{{ item.title }}</td>
<td>{{ item.body }}</td>
<td>
<a href={% url 'edit' id=item.id %}>Edit</a>
<a href={% url 'delete' id=item.id %}>Delete</a>
</td>
</tr>
{% endfor %}
2)にパスを追加rls.py:
path('edit/<int:id>', views.edit, name='edit')
path('delete/<int:id>', views.delete, name='delete')
)でIDを使用views.py:
def delete(request, id):
obj = post.objects.get(id=id)
obj.delete()
return redirect('dashboard')
対象外かどうかはわかりませんが、解決策が見つかりました。クラスベースのビューがあり、テンプレートタグとしてgetパラメーターが必要な場合:
class MyView(DetailView):
model = MyModel
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['tag_name'] = self.request.GET.get('get_parameter_name', None)
return ctx
次に、getリクエストを/mysite/urlname?get_parameter_name='stuff
にします。
テンプレートに{{ tag_name }}
を挿入すると、getパラメーター値( 'stuff')にアクセスできます。テンプレートにこのパラメーターも必要なURLがある場合は、次のようにします。
{% url 'my_url' %}?get_parameter_name={{ tag_name }}"
URL構成を変更する必要はありません。