i'm trying to add a form, so users can post thier own articles , but when i hit publish button it shwos Field 'id' expected a number but got 'Free'.
. i wasn't adding the package_category
field to the forms because i have set a default value for it in my models.py
package_category = models.ForeignKey(Package_Category, on_delete=models.DO_NOTHING, verbose_name="Package Category", null=True, default="Free")
when i now add the package_category
field to the forms.py fields = [...]
it now shows this error Field 'id' expected a number but got 'Free'.
. i don't really know what is going
Views.py
@login_required
def CreateElement(request):
user = request.user
categories = Category.objects.all()
info = Announcements.objects.filter(active=True)
if request.method == "POST":
form = CreateElementForm(request.POST, request.FILES)
if form.is_valid():
form.instance.creator = request.user
element = form.save(commit=False) # ← no commit=False
element.slug = slugify(element.title)
# element.package_category == "Free"
element.save()
messages.success(request, f'Hi, Your Element have been sent for review and would be live soon!')
return redirect('creators:dashboard')
else:
form = CreateElementForm()
context = {
'form': form,
'info': info,
'categories': categories
}
return render(request, 'newpost.html', context)