যদিও কোনও ক্ষেত্রটি 'editable=False'
মডেল হিসাবে চিহ্নিত হয়েছে , আমি প্রশাসক পৃষ্ঠাটি এটি প্রদর্শন করতে চাই to বর্তমানে এটি ক্ষেত্রটি পুরোপুরি আড়াল করে .. কীভাবে এটি অর্জন করা যায়?
উত্তর:
পঠনযোগ্য ক্ষেত্রগুলি ব্যবহার করুন । পছন্দ করুন (জাঙ্গো> = 1.2 এর জন্য):
class MyModelAdmin(admin.ModelAdmin):
readonly_fields=('first',)
fields
, তবে আমি যখন এটি যুক্ত করেছিলাম তখন readonly_fields
পর্যন্ত এটি উভয়টিতে যুক্ত না করা এবং এটি অ্যাডমিনে উপস্থিত হওয়া অবধি প্রদর্শিত হবে না।
হালনাগাদ
আপনি যদি ক্ষেত্রটি অ্যাডমিনে সম্পাদনযোগ্য তবে অন্য কোথাও সম্পাদনাযোগ্য না রাখতে চান তবে এই সমাধানটি কার্যকর। আপনি যদি ক্ষেত্রটি জুড়ে অ-সম্পাদনযোগ্য রাখতে চান তবে @ টিল ব্যাকহাউসের উত্তরটি আরও ভাল বিকল্প।
আসল উত্তর
এটি করার একটি উপায় হ'ল ModelForm
অ্যাডমিনে একটি কাস্টম ব্যবহার করা । এই ফর্মটি সম্পাদনযোগ্য করে তুলতে প্রয়োজনীয় ক্ষেত্রটিকে ওভাররাইড করতে পারে। এর মাধ্যমে আপনি editable=False
অ্যাডমিন ছাড়া অন্য কোথাও ধরে রাখতে পারেন । উদাহরণস্বরূপ (জ্যাঙ্গো 1.2.3 দিয়ে পরীক্ষা করা)
# models.py
class FooModel(models.Model):
first = models.CharField(max_length = 255, editable = False)
second = models.CharField(max_length = 255)
def __unicode__(self):
return "{0} {1}".format(self.first, self.second)
# admin.py
class CustomFooForm(forms.ModelForm):
first = forms.CharField()
class Meta:
model = FooModel
fields = ('second',)
class FooAdmin(admin.ModelAdmin):
form = CustomFooForm
admin.site.register(FooModel, FooAdmin)
আপনার কেবল পঠনযোগ্য ক্ষেত্রগুলি অবশ্যই ক্ষেত্রগুলিতে থাকতে হবে:
fields = ['title', 'author', 'content', 'published_date', 'updated_date', 'created_date']
readonly_fields = ('published_date', 'updated_date', 'created_date')
readonly_fields
শীর্ষে রেখেছি এবং fields
সম্পাদনাযোগ্য ক্ষেত্রগুলি হতে দাও + readonly_fields
(উভয়ই আমার কোডে টিপলস; আমি কেন তাদের তালিকা হিসাবে ঘোষণা করব তা দেখছি না)।