Ceci est une version très simplifiée d'un modèle sur lesquels je travaille:Manipulation des exigences des champs du modèle Django qui sont basés sur d'autres domaines
class ClothingTop(models.Model):
SWEATER = 0
SHIRT = 1
TOP_CHOICES = (
(SWEATER, 'Sweat shirt'),
(SHIRT, 'Shirt'),
)
name = models.CharField(max_length=32)
type = models.PositiveSmallIntegerField(choices=TOP_CHOICES)
hoodie = models.BooleanField(default=False)
buttons = models.PositiveSmallIntegerField(null=True, blank=True)
def __unicode__(self):
return self.name
@property
def type_text(self):
if self.type == self.SWEATER:
if self.hoodie:
return 'Hooded sweatshirt'
return 'Plain sweatshirt'
elif self.type == self.SHIRT:
return 'Shirt'
Je veux exiger buttons
si le type
est réglé sur SHIRT
. Ma première pensée a été de remplacer la méthode save
mais je ne suis pas sûr que ce soit nécessairement la façon la plus intelligente d'y arriver.
Quelqu'un a des suggestions?
Avec cette solution, je devrais également fournir un formulaire pour l'application d'administration correcte? –
ouais, vous auriez besoin d'avoir 'form = forms.ClothingTopForm' sur votre' ModelAdmin'. Vous en aurez besoin pour vous assurer que les utilisateurs professionnels sont limités par les règles métier. –
+1, merci KRON pour la réponse rapide. –