জ্যাঙ্গোর {% url%} টেমপ্লেট ট্যাগের মাধ্যমে কি ক্যোয়ারী প্যারামিটারগুলি পাস করা সম্ভব?


117

আমি পছন্দ মতো একটি {% url %}ট্যাগে অনুরোধের পরামিতিগুলি যুক্ত করতে চাই ?office=foobar

এটা কি সম্ভব? আমি এটিতে কিছুই খুঁজে পাচ্ছি না।


কোয়েরি স্ট্রিংগুলি রেন্ডার করতে একটি সাধারণ কাস্টম টেম্পলেট ট্যাগের জন্য এই উত্তরটি দেখুন ।
খ্রিস্টান লং

উত্তর:


169

না, কারণ জিইটি প্যারামিটারগুলি URL এর অংশ নয়।

কেবল এগুলি শেষের দিকে যুক্ত করুন:

<a href="{% url myview %}?office=foobar">

জ্যাঙ্গো 1.5+ এর জন্য

<a href="{% url 'myview' %}?office=foobar">

10
ভাল, প্রযুক্তিগতভাবে তারা হয়। আরএফসি 1738 অনুসারে , একটি এইচটিটিপি ইউআরএল এই রূপটি গ্রহণ করে: http: // <হোস্ট>: <port> / <p>> <সন্ধান অংশ>।
নাকটিনিস

@ নাকটিনিস একটি এইচটিটিপি ইউআরএল, হ্যাঁ। একটি জ্যাঙ্গো ইউআরএল, এতটা নয় । সুতরাং "ইউআরএল" এর বিভিন্ন সংজ্ঞার জন্য, আপনি উভয়ই সঠিক: পি

এর ফলে ইউআরএলটির example.com/myview/?office=foobarপরিবর্তে পিছনের স্ল্যাশের ফলাফল হয় না example.com/myview?office=foobar?
আল সুইগার্ট

হ্যাঁ তবে তাই কি?
ড্যানিয়েল রোজম্যান 12'17

34

নতুন সাথে বর্তমান পরামিতিগুলি মিশ্রনের একটি উপায়:

{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}

অনুরোধ পরিবর্তনশীল আপনার সেটিংস পরিবর্তন করুন:

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request',
)

1
দুর্ভাগ্যক্রমে এটি তালিকা হিসাবে পরামিতিগুলির সাথে কাজ করছে বলে মনে হচ্ছে না
আর্থার

@ আর্থার এটি জ্যাঙ্গোস বাগ?
এরি

3
এটি সত্যই মার্জিত হবে তবে পেজিংয়ের জন্য কাজ করে না কারণ এটি জিইটি প্যারামগুলি থেকে আবার আগের পৃষ্ঠার "পৃষ্ঠা = 1" যুক্ত করে।
ফ্লোরিয়ান

25

urlencodeযুক্তিটি পরিবর্তনশীল হলে ব্যবহার করুন

<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">

অন্যথায় স্পেসের মতো বিশেষ অক্ষরগুলি আপনার URL টি ভেঙে দিতে পারে।

ডকুমেন্টেশন: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode


এটি আমার পক্ষে কাজ করে না .. some_varচলকটি href এ খালি ফিরে আসে তবে টেমপ্লেটের অন্য কোথাও ব্যবহার করা হলে তা পূরণ করা দেখানো হয়। v2.1
geoidesic

প্রতিবেদনের জন্য জিওডেসিক ধন্যবাদ, আপনি যদি ব্রেকিং কমিট / সংস্করণ প্রকাশের নোটগুলি আরও খুঁজে পান বা ১.৯-এ পুনরুত্পাদন পরিচালনা করেন তবে আমাকে জানান know
সিওরো সান্তিলি 30 冠状 病 六四 事件

8

প্রথমত, একটি নির্বোধ উত্তর:

{% url my-view-name %}?office=foobar

একটি গুরুতর প্রতিভা: না, আপনি পারবেন না। জ্যাঙ্গোর ইউআরএল রিসলভার কেবলমাত্র ইউআরএল এর পাথ অংশের সাথে মেলে , সুতরাং {% url %}ট্যাগটি কেবল URL এর সেই অংশটিকেই বিপরীত করতে পারে।


প্রকৃতপক্ষে. এটিও বোধগম্য হয় ... আমি কেবল তার চেয়ে কিছুটা মার্জিত হতে চাই।
ব্রায়ান ডি

আপনি সর্বদা আরও মার্জিত কাস্টম ট্যাগ লিখতে পারেন - উদাহরণস্বরূপ {% কিপুরাল মাইভিউ অফিস = ফুবার%। এটি মানগুলি প্রক্রিয়া করতে এবং এগুলি যথাযথভাবে এনকোড করতে পারে।
স্পেসডম্যান

0

এটা চেষ্টা কর:

{% url 'myview' office=foobar %}

এটা আমার জন্য কাজ করেছে। এটি মূলত সেই লিঙ্কটিতে একটি বিপরীত কাজ করে এবং প্রদত্ত যুক্তি প্রয়োগ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.