2
내가 멀티 블로그 응용 프로그램을 쓰고 있어요 말과 나는 각각의 저자가 자신의 기사에 대해 고유 한 제목을 사용하고자하는 (그러나 전 세계적으로 고유하지, 사용자 당 고유의) :는 암시 적으로 채워진 unique_together 및 현장 장고 관리자에
class Article(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=255)
#[...]
class Meta:
unique_together = (('title', 'owner'),)
class ArticleAdmin(ModelAdmin):
exclude = ('owner',)
def save_model(self, request, obj, form, change):
if not change:
obj.owner = request.user
obj.save()
을 사실이 작동하지 않습니다 : 나는, 장고 것 기존 저자 제목 조합으로 새로운 기사를 만들려고하면
는 지금, 나는 저자 필드가 자동으로 채워 응용 프로그램이되고 싶어 고유성을 검사하지 않습니다 (작성자가 양식에서 제외되었으므로). IntegrityError를 얻습니다. 그것이 데이터베이스를 친 때.
def clean(self):
if Article.objects.filter(title=self.title, owner=self.owner).exists():
raise ValidationError(u"...")
을하지만 Article.clean()가 전에 ArticleAdmin.save_model()를 호출, 그래서이 작동하지 않는 것 같다
나는 기사 클래스에 깨끗한 방법을 추가 생각했다. 이 질문의 는 이미 여기에 요청을받은,하지만 솔루션 중 누구도 나를 위해 제대로 작동하지 : 이- 내가 Form.clean() 또는 다른 형태의 방법을 사용할 수 없습니다를하지 않아도 request.user가 필요하기 때문에 요청을 사용할 수 있습니다.
- 동일한 이유로 모델 수준 유효성 검사를 수행 할 수 없습니다.
- 일부 답변은 클래스 기반보기 또는 사용자 정의보기를 참조하지만 장고 관리자의 컨텍스트에서 계속하고 싶습니다.
내가 어떻게 관리 응용 프로그램의 절반을 다시 작성하지 않고 이것을 할 수있는 아이디어?