Django, modelinize bir SlugField eklerken ayarlayabileceğiniz unique_for_date özelliğine sahiptir.Django'da bir unique_for_field sümüklügü nasıl oluşturulur?
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for_date='publish')
publish = models.DateTimeField()
Ne ForeignKey gibi olmayan bir DateTime alanı için işlevsellik aynı tür ulaşmanın en iyi yolu olacaktır: Bu sülük yalnızca belirttiğiniz alanın tarihi için benzersiz olmasına neden olur? İdeal olarak, böyle bir şey yapmak istiyorum:
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for='category')
category = models.ForeignKey(Category)
aşağıdaki URL'ler yaratabilecek Bu şekilde:
/example/category-one/slug
/example/category-two/slug
/example/category-two/slug <--Rejected as duplicate
Fikirlerim şimdiye kadar:
bir ekleme Tabloya sümüklüböcek ve kategori için benzersiz bir dizin. Bu, Django dışında kod gerektirir. Eklenti/güncelleştirme başarısız olduğunda yerleşik yönetici bunu doğru şekilde ele alır mı?
Model için kaydetmeyi geçersiz kıl ve yinelenen varsa bir hata atarak kendi onaylamamı ekle. Bunun işe yarayacağını biliyorum, ancak çok da DRY görünmüyor.
Tabandan miras alan yeni bir slug alanı oluşturun ve buradaki işlevselliği buraya ekleyin. Bu en iyi yol gibi gözüküyor ama çekirdeğin unique_for_date kodunu inceledim ve bunu genişletmek çok sezgisel görünmüyordu. En iyi yolda
Herhangi bir fikir, öneri veya görüşler bunu yapmak için?
Elbette, bu kadar basit. Yardımın ve cevabın güncellenmesi için teşekkürler! –