Tôi đang cố gắng thực hiện một số xác thực tùy chỉnh trên mô hình và tôi bị nhầm lẫn. Hãy để tôi cụ thể. Hãy nói rằng mã của tôi là như sau:Là lưu() được gọi là ngầm khi gọi tạo trong django?
class FooManager(models.Manager):
def create_foo(self, name):
return self.create(foo_name = name)
class Foo(models.Model):
foo_name = models.CharField(max_length=30)
objects = FooManager()
def clean(self):
...
def save(self, *args, **kwargs):
self.full_clean()
super(User, self).save(*args, **kwargs)
Bây giờ, khi tôi đang làm việc với mô hình này từ vỏ, nếu tôi gọi:
f = Foo.objects.create_foo ("")
Nó sẽ nâng cao một lỗi xác nhận trước khi tôi có cơ hội t o gọi save() trên f. Lý do tại sao điều này xảy ra? Không nên lỗi xác thực chỉ được nâng lên khi tôi gọi f.save()?
Lưu ý: điều tương tự cũng xảy ra nếu tôi sử dụng objects.create() trái ngược với phương thức tạo được xác định tùy chỉnh. Bất kỳ trợ giúp sẽ được đánh giá rất nhiều, như tôi đang tìm xác nhận trong django được khá bực bội.
Không, xin lỗi đó là lỗi của ví dụ kém của tôi. Trong mã thực tế của tôi, tôi tự đặt mình vào người quản lý. Tôi có nên đưa mã thực sự của mình lên, điều đó có giúp ích gì không? – innospark