Bir model oluşturmak ve güncellemek istediğimi varsayalım. Hangi alanlar görüntülenir ve doğrulama türü eyleme bağlıdır (oluştur veya güncelle). Fakat yine de birçok aynı doğrulama ve fonksiyona sahipler. ModelForm'un bunu ele alması için temiz bir yol var mı (örneğin her yerde varsa) veya sadece iki farklı model formu oluşturmalı mıyım?Django tasarım kalıpları - Bir Model Oluşturma ve Güncelleme Formları
5
A
cevap
4
İki olasılık akla ilkbahar. Sen, formun __init__
yönteminde bir öznitelik ayarlayabilirsiniz ya bir parametreye dayalı açıkça geçmek ya self.instance
var olup olmadığını dayanan ve sigara Yok pk vardır:
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# either:
self.edit = kwargs.pop('edit', False)
# or:
self.edit = hasattr(self, instance) and self.instance.pk is not None
super(MyModelForm, self).__init__(*args, **kwargs)
# now modify self.fields dependent on the value of self.edit
diğer seçenek modelform alt sınıfı için ise - Alt sınıftaki ortak işlevselliği, ardından alt sınıflardaki belirli oluşturma veya güncelleme işlevselliğini koru.
İlgili konular
- 1. Tasarım Kalıpları
- 2. SQL Tasarım Kalıpları
- 3. Scala İşlevsel Tasarım Kalıpları Kataloğu
- 4. ReactJS'li Django Formları
- 5. bir Django form oluşturma iki model
- 6. Django-registration 1.0 formları için django-registration 1.0 formları
- 7. Tasarım kalıpları için en iyi web siteleri?
- 8. Django Formları - Nasıl Doğrulanamaz?
- 9. Django Formları: Parametreyi
- 10. Şekillendirme formları ve django form değerleri
- 11. Django dışındaki Modelleri ve Formları Kullanma?
- 12. Google App Engine'deki tasarım değişikliklerinin verimli bir şekilde izlenmesi - tasarım kalıpları
- 13. JavaScript Tasarım Kalıpları - İstenmeyen Eşzamansızlık ile Başa Çıkma
- 14. Model formları içeren django'da bir programlama deseni ile yardım edin
- 15. Django 1.7 - yönetilmeyen model için geçiş oluşturma makemigrations
- 16. Çift iç içe geçmiş model formları
- 17. Django REST Framework. Güncelleme boş bir validated_data
- 18. Dizi üyeleriyle bir model oluşturma
- 19. Para biriminde model oluşturma
- 20. Mongoose.js: oluşturma veya güncelleme nasıl gerçekleştirilir?
- 21. Django Model Kalıtım ve Yönetim Sistemi
- 22. Django Haystack. Şablon ve model endekslerinin sorumlulukları
- 23. Django model yineleme alanları
- 24. Django Model seri kaldırma
- 25. EF Model içerisinde ilke ekle İlk tasarım
- 26. Model Django Anket
- 27. Django Model Seçenekleri
- 28. Django: Belirli bir model için bir queryset alıyorum ve queryset
- 29. Django model i18n içerik
- 30. Django Formları - ayarlanan alan değerleri görünümü
havalı, ben de öyle düşünüyordum. Bunu yapmak için daha iyi bir yol olup olmadığını merak ediyordum, ama bu bana iyi geliyor. – killerbarney