সময়ের সাথে সাথে এই উত্তরটির ক্রমবর্ধমান জটিলতা এবং প্রচুর হ্যাকের প্রয়োজনীয়তা সম্ভবত আপনাকে এগুলি করা একেবারেই সতর্ক করা উচিত। এটি অ্যাডমিনের অননুমোদিত অভ্যন্তরীণ বাস্তবায়নের বিশদগুলির উপর নির্ভর করে, ভবিষ্যতে জ্যাঙ্গোর সংস্করণগুলিতে আবার ভাঙতে পারে এবং কেবল অন্য জেএস ক্যালেন্ডার উইজেট সন্ধান করা এবং এটি ব্যবহার করার চেয়ে প্রয়োগ করা সহজ নয় implement
এটি বলেছে, আপনি যদি এই কাজটি করার বিষয়ে দৃ determined়প্রতিজ্ঞ হন তবে আপনাকে যা করতে হবে তা এখানে:
আপনার মডেলটির জন্য আপনার নিজস্ব মডেলফর্ম সাবক্লাসটি সংজ্ঞায়িত করুন (এটিকে আপনার অ্যাপ্লিকেশনে ফর্ম.পাইতে রাখার জন্য সেরা) এবং এডমিনটেট উইজেট / অ্যাডমিনটাইম উইজেট / অ্যাডমিনস্প্লিটডেটটাইম ব্যবহার করতে বলুন (আপনার মডেল থেকে সঠিক ফিল্ডের নাম দিয়ে 'মায়াডেট' ইত্যাদি প্রতিস্থাপন করুন):
from django import forms
from my_app.models import Product
from django.contrib.admin import widgets
class ProductForm(forms.ModelForm):
class Meta:
model = Product
def __init__(self, *args, **kwargs):
super(ProductForm, self).__init__(*args, **kwargs)
self.fields['mydate'].widget = widgets.AdminDateWidget()
self.fields['mytime'].widget = widgets.AdminTimeWidget()
self.fields['mydatetime'].widget = widgets.AdminSplitDateTime()
আপনার ইউআরএলকনফকে 'ফর্ম_ক্লাস' পাস করতে: 'মডেল' এর পরিবর্তে প্রোডাক্টফর্ম: জেনেরিক ক্রিয়েওবজেক্ট ভিউতে পণ্যটি (যার অর্থ "আমার_অ্যাপসফর্মগুলি" মাই_অ্যাপ.মোডালস থেকে "আমদানি পণ্য" এর পরিবর্তে প্রোডাক্টফর্ম আমদানি করবে) অবশ্যই)
আপনার টেম্পলেটটির শিরোনামে জাভাস্ক্রিপ্ট ফাইলগুলিতে লিঙ্কগুলি আউটপুট করতে {{form.media} include অন্তর্ভুক্ত করুন।
এবং হ্যাকি অংশ: অ্যাডমিনের তারিখ / সময়ের উইজেটগুলি ধারণা করে যে i18n জেএস স্টাফ লোড হয়েছে, এবং কোর.জেও প্রয়োজন, তবে কোনও একটি স্বয়ংক্রিয়ভাবে সরবরাহ করবেন না। সুতরাং উপরে আপনার টেমপ্লেটে {{form.media template} আপনার প্রয়োজন হবে:
<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>
আপনি নিম্নলিখিত অ্যাডমিন সিএসএস ব্যবহার করতে ইচ্ছুক হতে পারেন (এটি উল্লেখ করার জন্য অ্যালেক্সকে ধন্যবাদ ):
<link rel="stylesheet" type="text/css" href="/media/admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/media/admin/css/widgets.css"/>
এর দ্বারা বোঝা যায় যে জ্যাঙ্গোর প্রশাসক মিডিয়া (ADMIN_MEDIA_PREFIX) / মিডিয়া / অ্যাডমিন / এ রয়েছে - আপনি আপনার সেটআপের জন্য এটি পরিবর্তন করতে পারেন। আদর্শভাবে আপনি এই মানগুলিকে হার্ডকোডিংয়ের পরিবর্তে আপনার টেম্পলেটে প্রেরণ করার জন্য একটি প্রসঙ্গ প্রসেসর ব্যবহার করতে চান তবে এটি এই প্রশ্নের ক্ষেত্রের বাইরে।
এটির জন্যও ইউআরএল / আমার_এডমিন / জসি 18 এন / ম্যানুয়ালি django.views.i18n.javascript_catolog ভিউ (বা নাল_ জাভাস্ক্রিপ্ট_ক্যাটেলোগুলি যদি আপনি I18N ব্যবহার না করে থাকেন) অবধি সজ্জিত হন। আপনাকে অ্যাডমিন অ্যাপ্লিকেশনটি ব্যবহার না করে নিজেই এটি করতে হবে যাতে আপনি অ্যাডমিনে লগ ইন করেছেন কিনা তা নির্বিশেষে এটি অ্যাক্সেসযোগ্য (ধন্যবাদ জেরেমিকে এটি নির্দেশ করার জন্য)। আপনার URLconf এর জন্য নমুনা কোড:
(r'^my_admin/jsi18n', 'django.views.i18n.javascript_catalog'),
শেষ অবধি, আপনি জ্যাঙ্গো ১.২ বা তার পরে ব্যবহার করছেন, উইজেটগুলির মিডিয়া সন্ধান করতে আপনার টেমপ্লেটে আপনার কিছু অতিরিক্ত কোডের প্রয়োজন:
{% load adminmedia %} /* At the top of the template. */
/* In the head section of the template. */
<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
</script>
এই সংযোজনের জন্য লুপফাইস্কো ধন্যবাদ ।