제 질문은 명시 적으로 설정되지 않은 경우 모델 관리자의 메서드를 무시하고 기본 매개 변수를 전달하는 방법입니다. 내가 (수) 및 필터() 메소드는 매개 변수 deleted=False
를 추가이 매개 변수를 명시 적으로 설정되지 않은 경우 (내가 Entry.objects.filter(deleted=True)
같은 물건을 의미 모두에서 원하는 어떻게 든 지금get() 또는 filter() 메서드의 Django 모델 기본 매개 변수
class Entry(models.Model):
user = models.ForeignKey(User, verbose_name=_("user"))
text = models.CharField(max_length=200)
date = models.DateTimeField(auto_now_add=True)
deleted = models.BooleanField(default=False)
:
내가 모델 항목을 말해봐 기본 매개 변수는 제시된 매개 변수를 재정의해서는 안됩니다).EntryManager를 만들고 Entry 모델의 관리자로 설정합니다. EntreManager에서 필터() 메소드 :
def filter(self, *args, **kwargs):
deleted = kwargs.get('deleted', False)
kwargs.update({'deleted':deleted})
return super(EntryManager, self).get(*args, **kwargs)
그러나이 경우 deleted__in=(True, False)
작동하지 않습니다, 그것은 이상한 아니지만 내가 어떻게이 권리를 수행하는 방법을 모른다. 미리 감사드립니다. django를 사용하는 방법에 의해 1.3.1
명시 적으로 매개 변수를 삭제할 때이 경우 수행 = – tony
@tony : 일반'objects' 관리자와 특수 필터링 된 관리자 ('deleted' 또는 somesuch라고하는)라는 두 개의 관리자가 필요합니다.). – mipadi
이제 고맙습니다. – tony