Ho un modello che ho annullato il metodo di salvataggio in modo che il metodo di salvataggio possa essere passato in alcuni dati e riempire automaticamente un campo prima di salvare. Qui è il mio modello:override Django Ottieni o crea
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
L'idea è ho creato un modello di base per gli oggetti che devono essere associati a un account e quindi non voglio avere a che fare con le connessioni di conto ogni volta che sono venuti fuori (che è molto). Ma mi piacerebbe anche usare get_or_create, che salva i nuovi oggetti senza passare la richiesta. So che è fattibile non usare get_or_create e fare un tentativo/tranne, ma vorrei sapere se c'è un modo per scavalcare get_or_create e quale è il modo corretto di farlo.
Ho esaminato il codice per il Manager (che sto cercando di sovrascrivere) e la funzione get_or_create chiama semplicemente una funzione get_or_create di QuerySet. Forse posso scrivere per utilizzare altre funzioni di gestione e non la versione di QuerySet di get_or_create? Cosa pensate?
Questo mi ha aiutato quando avevo bisogno di sovrascrivere bulk_create(). Grazie! – Chad