Представьте себе эту модельДжанго - форма проверки для перекрытия диапазоны дат
class Session(models.Model):
user = models.ForeignKey(User)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
Чтобы добавить/обновить сеанс, я использую этот ModelForm
class SessionForm(forms.ModelForm):
class Meta:
model = Session
fields = ('start_time', 'end_time',)
Как мне нужно предотвратить session
сек из того же user
для перекрытия, я сделал эту форму чистой
def clean(self):
cleaned_data = super(SessionForm, self).clean()
start = cleaned_data.get('start_time')
end = cleaned_data.get('end_time')
conflicts = Session.objects.filter(
start_time__lte=end,
end_time__gte=start,
)
if any(conflicts):
raise forms.ValidationError(_("%i conflicts found" % conflicts.count()))
return cleaned_data
Но, как я добавив user
после save()
if form.is_valid():
session = form.save(False)
session.user = request.user
session.save()
Как я могу включить его в чеке конфликта?
Другими словами, как я могу передать user
в качестве параметра clean()
?
Намного лучше для моего дела. Спасибо ! –