एक Django के रूप में, मैं केवल पढ़ने के लिए (या अक्षम) फ़ील्ड कैसे बनाऊँ?
जब फॉर्म का उपयोग नई प्रविष्टि बनाने के लिए किया जा रहा है, तो सभी फ़ील्ड सक्षम होनी चाहिए - लेकिन जब रिकॉर्ड अपडेट मोड में होता है तो कुछ फ़ील्ड को केवल-पढ़ने के लिए आवश्यक है।
उदाहरण के लिए, एक नया Item
मॉडल बनाते समय , सभी क्षेत्रों को संपादन योग्य होना चाहिए, लेकिन रिकॉर्ड को अपडेट करते समय, क्या sku
फ़ील्ड को अक्षम करने का कोई तरीका है ताकि यह दिखाई दे, लेकिन संपादित नहीं किया जा सकता है?
class Item(models.Model):
sku = models.CharField(max_length=50)
description = models.CharField(max_length=200)
added_by = models.ForeignKey(User)
class ItemForm(ModelForm):
class Meta:
model = Item
exclude = ('added_by')
def new_item_view(request):
if request.method == 'POST':
form = ItemForm(request.POST)
# Validate and save
else:
form = ItemForm()
# Render the view
क्या कक्षा ItemForm
का पुन: उपयोग किया जा सकता है? ItemForm
या Item
मॉडल वर्ग में किन बदलावों की आवश्यकता होगी ? क्या मुझे ItemUpdateForm
आइटम को अपडेट करने के लिए एक और वर्ग, " " लिखना होगा ?
def update_item_view(request):
if request.method == 'POST':
form = ItemUpdateForm(request.POST)
# Validate and save
else:
form = ItemUpdateForm()