Tôi có một mô hình mà tôi đã ghi đè phương thức lưu để phương thức lưu có thể được chuyển vào một số dữ liệu và tự động điền vào một trường trước khi lưu. Đây là mô hình của tôi:ghi đè Django Nhận hoặc Tạo
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
Ý tưởng là tôi thiết lập một mô hình cơ sở cho các đối tượng mà cần phải được liên kết với một tài khoản và sau đó tôi sẽ không phải đối phó với các kết nối tài khoản mỗi khi họ đưa ra (đó là rất nhiều). Nhưng tôi cũng muốn sử dụng get_or_create, để lưu các đối tượng mới mà không cần phải chuyển yêu cầu. Tôi biết nó là doable để không sử dụng get_or_create và làm một thử/ngoại trừ thay vào đó, nhưng tôi muốn biết nếu có một cách để ghi đè get_or_create và cách thích hợp để làm điều đó là gì.
Tôi đã xem mã cho Trình quản lý (mà tôi đang xem ghi đè) và hàm get_or_create chỉ gọi hàm get_or_create của QuerySet. Có lẽ tôi có thể viết nó để sử dụng các chức năng quản lý khác và không phải là phiên bản QuerySet của get_or_create? Bạn nghĩ sao?
Điều này đã giúp tôi khi tôi cần ghi đè bulk_create(). Cảm ơn! – Chad