Vi que algunas personas tenían este problema antes que yo, pero en las versiones anteriores de Django, y me estoy ejecutando en 1.2.1.Django unique_together no funciona con ForeignKey = Ninguna
que tienen un modelo que se parece a:
class Category(models.Model):
objects = CategoryManager()
name = models.CharField(max_length=30, blank=False, null=False)
parent = models.ForeignKey('self', null=True, blank=True, help_text=_('The direct parent category.'))
class Meta:
unique_together = ('name', 'parent')
cada vez que intento de salvar en la administración de una categoría con un padre en Ninguno, todavía funciona cuando hay otra categoría con el nombre MISMO y conjunto de padres a ninguno
Ideas sobre cómo resolver esto con gracia?
El enfoque general se ve bien aquí, pero No estoy siguiendo la lógica de 'if self.parent y Category.objects.filter (name = self.name) .exists():' Eso me parece que está comprobando que el padre existe y otra categoría con el mismo nombre existe ¿Cómo es esto lo que queremos? ¿No debería ser más bien algo así como (no probado) 'si self.parent == None y FolderUpload.objects.filter (name = self.name, parent = None) .exists():'? –
Creo que tienes razón. Yo usaría parent_id__is null = True en lugar de parent = None. Probablemente necesite una exclusión() para ignorar el objeto actual también. – Alasdair
Estaré ausente durante una semana, por lo que no podré corregir la respuesta. Siéntase libre de editarlo si lo desea/puede. – Alasdair