जवाबों:
Readonly फ़ील्ड्स का उपयोग करें । जैसे (django> = 1.2 के लिए):
class MyModelAdmin(admin.ModelAdmin):
readonly_fields=('first',)
fields
, लेकिन जब मैंने इसे इसमें जोड़ा, तब readonly_fields
तक नहीं दिखा जब तक मैंने इसे दोनों से नहीं जोड़ा और तब यह व्यवस्थापक में दिखाई दिया।
अपडेट करें
यह समाधान उपयोगी है यदि आप व्यवस्थापक में फ़ील्ड संपादन योग्य रखना चाहते हैं, लेकिन हर जगह गैर-संपादन योग्य है। आप क्षेत्र गैर संपादन योग्य रखना चाहते हैं भर तो @Till Backhaus ' जवाब बेहतर विकल्प है।
मूल उत्तर
ऐसा करने का एक तरीका ModelForm
एडमिन में कस्टम का उपयोग करना होगा । यह फ़ॉर्म संपादन योग्य बनाने के लिए आवश्यक फ़ील्ड को ओवरराइड कर सकता है। जिससे आप editable=False
हर जगह और प्रशासन को बनाए रखते हैं । उदाहरण के लिए (Django 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)