Как исправить проблему сохранения формы в базу данных django?

Итак, у меня есть форма, которую можно заполнить с веб-страницы, которую я хочу сохранить в моей базе данных django, чтобы создать новый объект при отправке, а не добавлять его в админке. Я попробовал, и система работает, за исключением одной вещи, при сохранении, функция запускается, так как мне удалось переключить страницы из этой функции при нажатии на submit, но объект не найден в базе данных после этого, так что я предполагаю, что сохранение является единственной проблемой.

Вот мой views.py :

def uploadform(request):
if request.method == 'POST':
    name = request.POST['name']
    details = request.POST['details']
    littype = request.POST['littype']
    image = request.POST['image']

    new_object = PostForm.objects.create(name=name, details=details, littype=littype, image=image)
    new_object.save()

return render(request, 'uploadform.html', {})

Вот мой models.py (тот, который сохраняет форму - класс "PostForm") :

from email.mime import image
from django.db import models
from django.db.models import Model

# Create your models here.
class info(models.Model):
    name = models.CharField(max_length=100)
    details = models.CharField(max_length=10000)
    littype = models.CharField(default="Type of Litterature", blank=True, max_length=100)
    image = models.ImageField(default=None, blank=True, upload_to='app/files/covers')

class PostForm(models.Model):
    name = models.CharField(max_length=200)
    details = models.TextField()
    littype = models.TextField()
    image = models.FileField(upload_to='app/files/')

    def __str__(self):
        return self.name

Вот моя html страница :

{% load static %}

<!DOCTYPE html>
<html lang="en">
  <head>
    <link type="text/css" rel="stylesheet" href="templates/uploadform.css">
    <link type="text/css" rel="stylesheet" href="templates/form.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Fascinate&family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
  </head>
  <body style="height: 1000px;">
    <div class="page-title">
      <h1 class="page-title-text">Book & Movie & Series Recommendations</h1>
    </div>
    <div class="page-title-add-button-div">
      <a class="page-title-add-button-link"  href="/"> Home </a>
    </div>

    <div>
      <form method="POST" action="{% url 'uploadform' %}" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="text" id="name" name="name" placeholder="Title">
        <input type="text" id="details" name="details" placeholder="Summary Details">
        <input type="text" id="littype" name="littype" placeholder="Type of Literature">
        <input type="file" id="image" name="image" placeholder="Cover Picture">
        <input type="submit" value="Submit">
      </form>
    </div>
  </body>
</html>

Есть идеи? Спасибо за ваше время и ответы! Хорошего дня!

Ваш синтаксис неправильный. Должно быть:

request.POST.get('name')

Это быстрый ответ для тех, кому интересно, как я устранил проблему. Во-первых, мне нужно было исправить несколько вещей, которые Адам помог мне найти в комментариях, но основная проблема заключалась в том, что при создании нового объекта в базе данных вместо сохранения из модели "info", которая выглядит точно так же и находится в моей базе данных, я сохранял из модели "PostForm", которая не может быть найдена в базе данных.

Надеюсь, это кому-нибудь поможет, и я постараюсь оставаться активным и отвечать на любые вопросы, если они у вас возникнут.

Вернуться на верх