Формы Django не сохраняются в Admin

У меня есть проект Django, где у нас должна быть страница с формой, в которой мы должны заполнить информацию и сохранить ее в админке.

HTML (форма)

VIEWS.PY

from django.shortcuts import render, redirect

from .models import *
from .forms import MovieForm, SerieForm

def movie(request):
    movie = Movie.objects.all()
    serie = Serie.objects.all()
    pages = {'movies': movie, 'series': serie}
    return render (request, 'filme/base.html', pages)

#detail series
def series_detail(request, id):
    serie = Serie.objects.get(id=id)
    pages = {
        "serie": serie
    }
    return render (request, 'filme/serie_details.html')


def movies_detail(request, id):
    movie = Movie.objects.get(id=id)
    pages = {
        "movie": movie
    }
    return render (request, 'filme/movie_details.html')

def add_movies(request):
    if request.method == "POST":
        form = MovieForm(request.POST, request.FILES)
        #print('this is post')
        if form.is_valid():
            form.save()
            return redirect('movie')
        else:
            return render(request, 'filme/addmovies.html', {'form': form}) 
    else:
        form= MovieForm()
    return render(request, 'filme/addmovies.hmtl')     
        if form.is_valid():
            form.save()
            return redirect('movie_details')
    else:
        form = MovieForm()
    return render(request, 'filme/addmovies.html', {'form': form})
 

URLS.PY

from django.urls import path
from . import views

#app_name= "filme"

urlpatterns = [
    path('', views.movie, name="movie"), #nome do def do views.py
    path('movie', views.movie),
    path('movies_details/<int:id>', views.movies_detail, name="movie_details"),
    path('serie_details/<int:id>', views.series_detail, name="series_details"),
    path('addseries/<int:id>', views.add_series, name="add_series"),
    path('filme/addmovies/<int:Movie_id>', views.add_movies, name='add_movies') 
]

MODELS.PY

from django.db import models

# Create your models here.

CATEGORY_CHOICES = (
    ('ACTION', 'AC'),
    ('DRAMA', 'DR'),
    ('CRIME', 'CR'),
    ('HORROR', 'HO'),
    ('SCI-FI', 'SF'),
    ('MYSTERY', 'MY'),
    ('FAMILY', 'FA'),
    ('COMEDY', 'CO'),
    ('FANTASY', 'FY'),
)

CLASSIFICATION_CHOICES = (
    ('1/10', '1'),
    ('2/10', '2'),
    ('3/10', '3'),
    ('4/10', '4'),
    ('5/10', '5'),
    ('6/10', '6'),
    ('7/10', '7'),
    ('8/10', '8'),
    ('9/10', '9'),
    ('10/10', '10'),
)

SEASON_CHOICES = (
    ('1', '1'),
    ('2', '2'),
    ('3', '3'),
    ('4', '4'),
    ('5', '5'),
    ('6', '6'),
    ('7', '7'),
    ('8', '8'),
    ('9', '9'),
)

class Movie(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(max_length=1000)
    image = models.ImageField(upload_to='assets')
    category = models.CharField(choices=CATEGORY_CHOICES, max_length=8)
    classification = models.CharField(choices=CLASSIFICATION_CHOICES, max_length=6)
    date = models.DateField()
    pactors = models.TextField(max_length=1000)
    sactors = models.TextField(max_length=1000)
    producer = models.TextField(max_length=50)
    trailer_url = models.URLField(max_length=500)

    def __str__(self):
        return self.title

FORMS.PY

from django import forms
from .models import Movie, Serie
from django.forms import ModelForm
    
class MovieForm(ModelForm): #if not work switch to MovieForm
    title = forms.TextInput()  #delete till line 11 if not working
    description = forms.TextInput()
    date = forms.DateField()
    image = forms.ImageField()
    category = forms.CharField()
    classification = forms.CharField()
    pactors = forms.TextInput()
    sactors = forms.TextInput()
    producer = forms.TextInput()
    trailer_url = forms.URLField()
    class Meta:
        model= Movie
        fields = ['title', 'description', "image","category","classification","date","sactors","producer","trailer_url"]

ADMIN.PY

from django.contrib import admin
from filme.models import Movie, Serie
from .forms import MovieForm

# Register your models here.
class MovieAdmin(admin.ModelAdmin): #remove if not working
    form = MovieForm    
    list_display=['title']



admin.site.register(Movie, MovieAdmin)
admin.site.register(Serie)

Я уже второй раз начинаю этот проект, потому что в другом возникла та же проблема, и он стал настолько запутанным, что пришлось начинать заново. Я уже пробовал и уроки на youtube, и спрашивал у ChatGPT, ничего не решает. Модель "Фильмы" отображается на странице администратора, но если я заполняю форму и нажимаю "Добавить", она перенаправляет меня на ту же страницу формы, а раздел "Фильмы" в администраторе остается пустым. Пожалуйста, помогите мне, мне нужно сделать это до понедельника, я в отчаянии :')

У вас опечатка в представлении add_movies при рендеринге html-страницы (неправильное написание html), должно быть addmovies.html, а не addmovies.hmtl

У вас return render(request, 'filme/addmovies.hmtl') вместо return render(request, 'filme/addmovies.html').

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