2012-05-11 6 views
1

Je ces deux modèles:Django Administrateur de validation de formulaire de QuerySet

class Service(MelosModel): 
    performer = models.ForeignKey(Performer) 
    event = models.ForeignKey('Event') 
    composition = models.ForeignKey(Composition) 


class Event(MelosModel): 
    event_type = models.ForeignKey('EventType') 
    project = models.ForeignKey(Project) 
    works = models.ManyToManyField(Work) 
    date_of_event = models.DateTimeField() 
    location = models.ForeignKey(Address) 

Note: Un MelosModel est à toutes fins utiles les mêmes que models.Model. En outre, Composition s'étend Work.

Le problème est que la liste des compositions dans la forme Service d'administration doit être validé contre les Work s de son Event. disponibles Comment faites-vous cela?

Je lis à faire un ModelChoiceField d'un queryset, mais ce ne serait pas aider parce que nous ne savons pas ce que le Event est jusqu'à ce que le formulaire est soumis. Quelle est la meilleure façon de gérer cela?

Répondre

0

Si j'ai bien compris, vous pouvez écrire un clean() method sur votre classe de modèle Service pour effectuer la validation personnalisée.

+0

Cela fonctionne vraiment. Mais je m'inquiète toujours que je ne le fais pas correctement. Pour moi, ce serait une meilleure conception de base de données pour laisser l'ensemble des services déterminer quels travaux existent pour un événement, mais cela n'aide évidemment pas à la validation. – tjb1982

Questions connexes