Ошибка The "Model" could not be created because the data didn't validate. Django
Пишу приложение, для учета расходов. При создании расхода, в форме, есть поле "объект", где в выпадающем списке выводятся только те объекты, которые создал активный пользователь. Но при сохранении записи выходит ошибка. Не могу разобраться в чем тут дело.
Модель:
class PaymentMode(models.Model):
object = models.ForeignKey(
"dropdown.Object",
on_delete=models.CASCADE,
verbose_name="object",
blank=True,
null=True,
)
des = models.ForeignKey(
Destination,
on_delete=models.CASCADE,
verbose_name='des',
)
cat = models.ForeignKey(
Category,
on_delete=models.CASCADE,
blank=True,
null=True,
verbose_name='cat',
)
subcat_name = models.ForeignKey(
Subcategory,
on_delete=models.CASCADE,
verbose_name='subcat_name',
blank=True,
null=True,
)
summ = models.PositiveIntegerField()
recipient = models.CharField(
("Recipient"),
max_length=50,
blank=True,
null=True,
)
comment = models.TextField(
("Comment"),
blank=True,
null=True,
)
operation_date = models.DateTimeField(
auto_now=True,
blank=True,
null=True,
)
user = models.ForeignKey(
User,
verbose_name=("user"),
on_delete=models.CASCADE,
blank=True,
null=True,
)
deleted = models.BooleanField(
("Deleted"),
default=False,
)
def __str__(self):
return f'{self.object} {self.cat} {self.comment}'
Вьюшка:
def add_operation(request):
if request.method == 'POST':
form = PaymentModeForm(request.POST)
if form.is_valid():
# form.save(commit=False)
pay = form.save(commit=False)
pay.user_id = request.user.id
pay.save()
return redirect('/manager/operations')
else:
form = PaymentModeForm(user_id=request.user.id)
return render(request, 'dropdown/added_pay.html', {'form': form},)
Форма:
class PaymentModeForm(forms.ModelForm):
object = forms.ModelChoiceField(label='Object', queryset=Object.objects.all())
def __init__(self, *args, **kwargs):
user_id = kwargs.pop('user_id', None)
super(PaymentModeForm, self).__init__(*args, **kwargs)
self.fields['object'].queryset = Object.objects.filter(user_id=user_id)
class Meta:
model = PaymentMode
# fields = ['object']
# fields = '__all__'
fields = ('summ',
'recipient',
'object',
'des',
'cat',
'subcat_name',
'comment',
# 'user',
)
cat = RestrictedModelChoiceField(
Category.objects.all(),
restrict_on_form_field="des",
restrict_on_relation="allowedcombination__des",
)
subcat_name = RestrictedModelChoiceField(
Subcategory.objects.all(),
restrict_on_form_field="cat",
restrict_on_relation="allowedcombination__cat",
)
Источник: Stack Overflow на русском