Bir modelin herhangi bir durumunu DDBB yapısıyla ilgilenmeden kaydetmek istiyorum. Bu yüzden her modelin sınıfında def save
'u geçersiz kılmaya karar verdim. Tür:Django Yöneticisi'nin kaydetme yöntemini geçersiz kılma
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
if condition:
raise Exception("You can´t insert that element")
return super(name_class, self).save(self, force_insert=force_insert, force_update=force_update, using=using, update_fields=update_fields)
Eh, bu konuda bir istisna rasing değil eklemek için ulaşmak ancak örneğin eğer birincil sınırlamanın olmasının ne olursa olsun DB eklemek istediğiniz bu çeki ...
Nasıl geçecek Anladım?
save
çekirdek kodunu geçersiz kılmalıyım, ancak kontrol ettim ve DB'ye yerleştirme koşullarını kontrol ettiğim parçayı bulamadım. Belki, Sorun yalnızca formun doğrulanmasıdır.
Django Yöneticisi'nde belirli bir formu nasıl geçersiz kılabilir. Özellikle, modelin bir sınıfını eklediğim, sildiğim veya düzenlediğinizi.
Modelin kaydetme yönteminin üzerine yazabilirsiniz. İşte örnek: http://stackoverflow.com/questions/4269605/django-override-save-for-model –
Teşekkürler Lam, ama yaptığım şey bu. Mesajımı en baştan kontrol et. Sorun, uzatma değil, onu geçersiz kılmaktır. Modellerimin birincil anahtar kısıtlaması var, ancak gerçek DB çalışmıyor (hatta hiç de mantıklı değil gibi görünüyor ...: P). Demek istediğim, eğer kendi çekimi kendimden geçerse, ben de zorlamak istiyorum (is_valid = True belki ...) Benim iki yaklaşımım şunlardır: kaydetmeyi geçersiz kılmak (genişletmez) veya formlarda atlamaları doğrulamak –