Как сохранить внешний ключ из шаблона django html
Я хочу сохранить данные из поля выбора html шаблона в django.
html пример кода:
<label for="type" style="color:red;">Short Name *</label>
<input type="text" name="short_name" class="form-control" required placeholder="">
<br> <br>
<select style='bakground-color:red' name="category" required class="form-control show-tick">
<option value="" selected="selected">---------</option>
{% for cat in category %}
<option value="{{ cat }}">{{ cat }}</option>
{% endfor %}
</select>
Код Django:
Views.py
def addBooks(request):
template = 'admin_panel/add_books.html'
category = Category.objects.all()
book_details = BookDetails.objects.all()
context = {
"page_title": "Add Book",
"category": category,
"book_details" :book_details,
}
if request.method == "POST":
short_name = request.POST.get('short_name', None)
category = request.POST.get('category',None)
book_details = BookDetails.objects.create(short_name=short_name, category=category)
return render(request, template,context)
models.py
class BookDetails(models.Model):
id = models.AutoField(primary_key=True)
short_name = models.CharField(max_length=50, unique=True, db_index=True)
category = models.ForeignKey(
Category,
on_delete=models.CASCADE
)
Появление ошибки: ValueError at /superadmin/add_books/ Невозможно присвоить "'Story'": "BookDetails.category" должен быть экземпляром "Category".
Как решить эту проблему?
В тамбуре
option value={{cat.id}}
В поле зрения:
BookDetails.objects.create(short_name=short_name, category_id=category)