Это мой код
models.py
class Expense(models.Model):
category=models.CharField(verbose_name=u"Category:", choices=cat, default=0, max_length=50)
description=models.CharField(verbose_name=u'Description:', max_length=50)
cost=models.DecimalField(verbose_name=u'Cost:', max_digits=5, decimal_places=2)
date=models.DateField(auto_now_add=True)
createdBy=models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
class Meta:
ordering = ['date']
admin.py
class ExpenseAdmin(admin.ModelAdmin):
list_display=('category', 'description', 'cost', 'date', 'createdBy')
list_filter=('category', 'description', 'date')
search_fields=('category', 'description', 'date')
fieldsets = [
(None, { 'fields': [('category', 'description', 'cost')] } ),
]
def save_model(self, request, obj, form, change):
if getattr(obj, 'createdBy', None) is None:
obj.createdBy = request.user
obj.save()
views.py
def newExpense(request):
form=ExpenseForm(request.POST or None)
if form.is_valid():
form.save()
return redirect(monthExpense)
context={
'form':form
}
return render(request, 'newExpense.html', context)
forms.py
class ExpenseForm(forms.ModelForm):
class Meta:
model = Expense
fields=['category', 'description', 'cost']
На django административный сайт работает нормально, но на моем HTML сайте не работает.
Отображает ошибку:
IntegrityError в / newExpense /
Сбой ограничения NOT NULL: расход_экспонирование.createdBy_id