J'ai une forme comme ceci:formes Django IntegerField mis max_value sur l'exécution
class SomeForm(forms.Form):
first = forms.IntegerField(max_value= DontWantToSetYet)
second = forms.IntegerField(max_value= DontWantToSetYet)
third = forms.IntegerField(max_value= DontWantToSetYet)
Comment puis-je régler les max_values lors de l'exécution? IE
if request.method == 'POST':
form = SomeForm(request.POST, max_values = {'first':10,'second':50,'third':666})
[...]
J'ai un endroit où je fais cela à partir du compte d'un jeu de clés étrangères. Je le fais comme ceci: 'self.fields ['field_name']. Widget.attrs.update ({'min': 0, 'max': self.instance.foreignobject_set.count()})'. De cette façon, vous n'avez pas besoin d'instancier un nouveau widget, et en utilisant '.update()' sur 'attrs', vous vous assurez que vous n'écrasez pas les valeurs définies ailleurs. – beruic
La réponse @beruic doit être acceptée une, car elle n'écrase pas l'objet créé –