Django Максимальное поле формы не устанавливается из экземпляра
Я пытаюсь задать моей форме в Django динамическое максимальное значение, основанное на передаваемом ей экземпляре модели (так, чтобы пользователь не мог установить больше гостей, чем разрешено в модели). Я не сталкиваюсь ни с какими ошибками, но это максимальное значение просто не вступает в силу (я могу поместить и сохранить все, что там есть). Помимо использования экземпляра при инициализации, есть ли что-то еще, что должно быть сделано?
Моя форма:
class RSVPForm(forms.ModelForm):
class Meta:
model = Invite
fields = ['rsvp_guests']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['rsvp_guests'].widget.attrs.update(
{'max': self.instance.max_guests},
)
Мое представление, в котором передается экземпляр:
def view_rsvp_create(request, id):
invite = get_object_or_404(Invite, id=id)
form = RSVPForm(request.POST or None, instance=invite)
if form.is_valid():
new_invite = form.save(commit=False)
new_invite.save()
return redirect('view_rsvp_overview', name = invite.event.wedding.subdomain, code = invite.guest.code)
data = {'form': form}
template='experience/rsvp-create.html'
return render(request, template, data)
Шаблон:
{% load crispy_forms_tags %}
<form class="form-horizontal form-material" method="post">
{% csrf_token %} {{ form | crispy }}
<div class="form-group">
<div class="form-group text-center m-t-20">
<div class="col-12">
<button class="btn btn-success btn-block btn-lg waves-effect waves-light" type="submit">Add</button>
</div>
</div>
</div>
</form>