জ্যাঙ্গো টেমপ্লেট ইউআরএল ট্যাগে ইউআরএল প্যারামিটারগুলি কীভাবে যুক্ত করবেন?


111

ইউআরএল প্যারামিটারগুলি পাওয়ার জন্য আমার দৃষ্টিতে:

date=request.GET.get('date','')

আমার ইউআরএলটিতে আমি এই জাতীয় url টেমপ্লেট ট্যাগ দিয়ে এইভাবে পরামিতিগুলি পাস করার চেষ্টা করছি:

<td><a href="{% url 'health:medication-record?date=01/01/2001' action='add' pk=entry.id %}" >Add To Log</a></td>

প্যারামিটার পরে? স্পষ্টতই কাজ করছে না, কীভাবে প্রাপ্তির সাথে পুনরুদ্ধার করতে আমি এই ডেটা মানটি পাস করতে পারি?




4
এটি সম্পর্কে চিন্তাভাবনা করার সময়, "জ্যাঙ্গো ইউআরএল প্যারামিটার" এবং "ইউআরএল কোয়েরি প্যারামিটার" এর মধ্যে পার্থক্যটি নিশ্চিত করে নিন। জাজানো ইউআরএল প্যারামিটারগুলি উদাহরণ urls.pyব্যবহার করে কনফিগার করা হয়েছে । URL টি ক্যোয়ারী পরামিতি পর url এর অংশ যেমন । এই প্রশ্নটি ইউআরএল ক্যোয়ারী প্যারামিটার সম্পর্কে, তবে কয়েকটি উত্তর জ্যাঙ্গো ইউআরএল পরামিতিগুলিকে বোঝায়। path()path('client/<int:id>/')?https://example.com/a/b/?param1=value1&param2=value2
খ্রিস্টান লং

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

উত্তর:


176

রেজেজেমে পরম গ্রহণ করার জন্য প্রথমে আপনার ইউআরএল প্রস্তুত করা দরকার: (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 %}

@ মেহরণনৌরি অনুরোধটি ব্যবহার করুন request অনুরোধের পরিবর্তে জেট করুন getগেট
সাইড

4
প্রসঙ্গ থেকে একটি অভিধান পাস করে কি কি কাওয়ার্গের গতিশীল সংখ্যার পাশ করার উপায় আছে? যেমন {% url target_link target_kwargs %}এটি **kwargsকোনও ফাংশনে পাসের সমতুল্যের মতো হবে like আমার একটি ব্যবহারের target_linkক্ষেত্র রয়েছে যেখানে পরিবর্তনশীল এবং তাই ইউআরএল-তে কোয়ার্গের সংখ্যা জানা নেই
teebagz

4
মনে রাখবেন যে এগুলি কোয়েরি পরামিতি নয়, এই উত্তরটি জাঙ্গো ইউআরএল পরামিতিগুলি বর্ণনা করছে। এটি ওপি সম্পর্কে যা জিজ্ঞাসা করেছিল তা নয় (উত্তরটি একটি কার্যকর বিকল্প সমাধান বর্ণনা করে)।
BjornW

96

আমি এখানে উত্তরটি পেয়েছি: জ্যাঙ্গোর {% url%} টেম্পলেট ট্যাগের মাধ্যমে কি কোয়েরি পরামিতিগুলি দেওয়া সম্ভব?

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

<a href="{% url myview %}?office=foobar">
For Django 1.5+

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

[উন্নত করার মতো আর কিছুই নেই তবে কোড টিক্স ঠিক করার সময় আমি বোকা ত্রুটি পাচ্ছি]


4
এটি ব্যবহার করা হলে, নেভিগেশন বারে 'অফিসে = ফুবার' তথ্য ব্যবহারকারীদের কাছে দৃশ্যমান হবে, তাই না?
ডায়ানশেং

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

4
শন: হ্যাঁ আপনি যদি এটি না চান তবে একটি পোষ্ট অনুরোধ ব্যবহার করুন, বা প্যারামগুলি পাস করার জন্য কিছু ব্যাক-চ্যানেল উপায় সন্ধান করুন। ইউআরএলটিতে প্যারামগুলি পাস করা জিইটি অনুরোধের জন্য আদর্শ
শাইনে

কি দুই যুক্তি পাস?
ফাইটউইথকোড

29

কেবল টেম্পলেটগুলির URL যুক্ত করুন:

<a href="{% url 'service_data' d.id %}">
 ...XYZ
</a>

জাঙ্গো ২.০ এ ব্যবহৃত হয়


@ স্কটস্কিলস আপনার তখন প্রশ্নটি জ্যাঙ্গোর একটি নির্দিষ্ট সংস্করণে সম্পাদনা করা উচিত এবং তারপরে আরও একটি সাম্প্রতিক সংস্করণটি কভার করতে অন্য একটি যুক্ত করা উচিত। কেউ কেউ বলে যে এটি একটি সদৃশ, তবে আমি একমত নই। এক প্রশ্নের একাধিক সংস্করণ বিভ্রান্তিকর হতে পারে।
বার্নার্ডো ডুয়ার্তে

21

এটি তিনটি সহজ ধাপে করা যেতে পারে:

1)url ট্যাগ সহ আইটেম আইডি যুক্ত করুন :

{% 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) urls.py এ পাথ যুক্ত করুন :

path('edit/<int:id>', views.edit, name='edit')
path('delete/<int:id>', views.delete, name='delete')

3) ভিডি.পি- তে আইডিটি ব্যবহার করুন :

def delete(request, id):
    obj = post.objects.get(id=id)
    obj.delete()

    return redirect('dashboard')

ডাউনভোটগুলি এড়াতে স্ক্রিনশট যুক্ত করার পরিবর্তে আপনার কোডটি টাইপ করুন।
বৈভব বিশাল

জ্যাঙ্গো ডকুমেন্টেশনে সুনির্দিষ্ট জিনিস আমি সন্ধান করছিলাম।
ইগোর ভোলটাইক

আমার মনে হয় আপনার href এর জন্য আপনার ডাবল উক্তি যুক্ত করা দরকার।
বেহরুজ বেহেস্তি

10

আমি নিশ্চিত না যে আমি বিষয়টি থেকে বেরিয়ে এসেছি, তবে আমি আমার সমাধান খুঁজে পেয়েছি; আপনার ক্লাস ভিত্তিক ভিউ রয়েছে এবং আপনি একটি টেমপ্লেট ট্যাগ হিসাবে প্যারামিটার পেতে চান:

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

তারপরে আপনি আপনার অনুরোধটি করবেন /mysite/urlname?get_parameter_name='stuff

আপনার টেমপ্লেটে, আপনি sertোকানোর সময় {{ tag_name }}, আপনার কাছে প্যারামিটার মানটি ('স্টাফ') অ্যাক্সেস থাকবে। আপনার টেমপ্লেটে যদি কোনও url থাকে তবে এটির জন্য এই প্যারামিটারটিও প্রয়োজন, আপনি এটি করতে পারেন

 {% url 'my_url' %}?get_parameter_name={{ tag_name }}"

আপনাকে আপনার ইউআরএল কনফিগারেশনটি পরিবর্তন করতে হবে না


5

1: এইচটিএমএল

           <tbody>
            {% for ticket in tickets %}
              <tr>
                <td class="ticket_id">{{ticket.id}}</td>
                <td class="ticket_eam">{{ticket.eam}}</td>
                <td class="ticket_subject">{{ticket.subject}}</td>
                <td>{{ticket.zone}}</td>
                <td>{{ticket.plaza}}</td>
                <td>{{ticket.lane}}</td>
                <td>{{ticket.uptime}}</td>
                <td>{{ticket.downtime}}</td>
                <td><a href="{% url 'ticket_details' ticket_id=ticket.id %}"><button data-toggle="modal" data-target="#modaldemo3" class="value-modal"><i class="icon ion-edit"></a></i></button> <button><i class="fa fa-eye-slash"></i></button>
              </tr>
            {% endfor %}
            </tbody>

Views% ইউআরএল 'টিকিট_ডিটেলস'% your আপনার দর্শনগুলির ফাংশনের নাম

2: ভিউ.পি

def ticket_details(request, ticket_id):

   print(ticket_id)
   return render(request, ticket.html)

টিকিট_আইডি প্যারামিটার যা আপনি টিকিট_আইডি = টিকেট.আইডি থেকে পাবেন

3: URL.py

urlpatterns = [
path('ticket_details/?P<int:ticket_id>/', views.ticket_details, name="ticket_details") ]

/? পি - যেখানে টিকিট_আইডি গ্রুপটির নাম এবং প্যাটার্নটি কিছুটা মিলের জন্য প্যাটার্ন।

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