Kaydetme yöntemini geçersiz kılacak bir modelim var; böylece kaydetme yöntemi bazı verilerden geçirilebilir ve kaydetmeden önce bir alana otomatik olarak doldurulabilir. İşte benim modelidir:Django'yu geçersiz kıl veya Get
class AccountModel(models.Model):
account = models.ForeignKey(Account)
def save(self, request=None, *args, **kwargs):
if request:
self.account = request.session['account']
super(AccountModel, self).save(*args, **kwargs)
class Meta:
abstract = True
Ben bir hesapla ilişkilendirilmesi gereken ve sonra hesap bağlantıları ile onlar gelip her zaman uğraşmak zorunda olmayacak nesneler için bir baz model kurmak olduğunu fikirdir (çok olan). Ayrıca, istekte bulunmadan yeni nesneleri kaydeden get_or_create'i kullanmak isterim. Get_or_create kullanmamayı ve bunun yerine bir try/except yapmanın mümkün olduğunu biliyorum, ancak get_or_create'i geçersiz kılacak bir yol olup olmadığını ve bunu yapmanın uygun yolu olup olmadığını bilmek istiyorum.
Yöneticinin (geçersiz kıldığım) kodunu inceledim ve get_or_create işlevi sadece bir QuerySet get_or_create işlevini çağırır. Belki de diğer yönetici işlevlerini kullanmak için yazabilirim ve get_or_create'ın QuerySet sürümünü değil? Ne düşünüyorsun?
Bu, bulk_create() işlevini devre dışı bırakmam gerektiğinde bana yardımcı oldu. Teşekkürler! – Chad