장고에는 모델에 SlugField를 추가 할 때 설정할 수있는 unique_for_date 속성이 있습니다.Django에서 unique_for_field 슬러그를 만드는 방법은 무엇입니까?
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for_date='publish')
publish = models.DateTimeField()
는 무엇 외래 키와 같은 비 날짜 시간 필드 기능의 동일한 종류를 달성하는 가장 좋은 방법이 될 것입니다 : 이것은 슬러그는 사용자가 지정한 필드의 날짜에 대한 고유 원인? 이상적으로,이 같은 것을하고 싶지 :
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for='category')
category = models.ForeignKey(Category)
나는 다음과 같은 URL을 만들 수있는이 방법 :
/example/category-one/slug
/example/category-two/slug
/example/category-two/slug <--Rejected as duplicate
내 아이디어 지금까지 :
a를 테이블에 대한 슬러그 및 categoryid의 고유 인덱스.이 작업을 수행하려면 장고 외부의 코드가 필요합니다. 삽입/업데이트가 실패 할 때 내장 관리자가 올바르게 처리합니까?
모델에 대한 저장을 무시하고 자체 유효성 검사를 추가하여 복제본이 있으면 오류가 발생합니다.이 방법이 효과가 있을지는 모르겠지만 매우 건조하지는 않습니다.
기본을 상속 한 새로운 슬러그 필드를 만들고 거기에 unique_for 기능을 추가하십시오. 이것은 가장 좋은 방법 인 것 같지만 코어의 unique_for_date 코드를 살펴 보았고 확장하기가 매우 직관적이지 않았습니다.
이 작업을 수행하는 가장 좋은 방법에 대한 아이디어, 제안 또는 의견이 있으십니까?
물론 간단합니다. 도움을 주시고 답변을 업데이트 해 주셔서 감사합니다! –