Я занимаюсь программированием Python и Django. Тем не менее, я борюсь с отображением простой формы. Единственный элемент, отображаемый на основе приведенного ниже кода, - это кнопка, но не (как предполагалось) вся форма. Я уже проверил отступ моего кода, но не смог отобразить форму.
models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
class Story (models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
audio = models.FileField(default='SOME STRING', upload_to='audio_stories')
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('story-detail', kwargs={'pk': self.pk})
forms.py
from django import forms
from .models import Story
class Story_Creation(forms.ModelForm):
class Meta:
model = Story
fields = ['title','content','audio']
views.py
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.models import User
from .models import Story
from .forms import Story_Creation
from django.contrib.auth.mixins import (
LoginRequiredMixin,
UserPassesTestMixin
)
from django.views.generic import (
ListView,
DetailView,
CreateView,
UpdateView,
DeleteView
)
def Create_Audio_Story(request):
if request.method == 'POST':
s_form = Story_Creation(request.POST, request.FILES)
if s_form.is_valid():
s_form.save()
return redirect('suyuh-home')
else:
s_form = Story_Creation()
context = {
's_form': s_form,
}
return render (request, 'story/story_form.html', context)
story urls.py
from django.urls import path
from .views import (
StoryListView,
StoryDetailView,
StoryCreateView,
StoryUpdateView,
StoryDeleteView,
UserStoryListView
)
from .import views
urlpatterns = [
path('', StoryListView.as_view(), name='suyuh-home'),
path('user/<str:username>', UserStoryListView.as_view(), name='user-stories'),
path('story/<int:pk>/', StoryDetailView.as_view(), name='story-detail'), #pk pimarykey for stories
path('story/new/', StoryCreateView.as_view(), name='story-create'),
path('story/<int:pk>/update/', StoryUpdateView.as_view(), name='story-update'),
path('story/<int:pk>/delete/', StoryDeleteView.as_view(), name='story-delete'),
path('about/', views.about, name='suyuh-about'),
]
main urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from users import views as user_views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('story.url')),
path('register/', user_views.register, name='register'),
path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
path('password-reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'), name='password-reset'),
path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'), name='password_reset_complete'),
path('password-reset/done/', auth_views.PasswordResetDoneView.as_view(template_name='users/password_reset_done.html'),name='password_reset_done'),
path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
path('profile/', user_views.profile, name='profile'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
story_form. html
{% extends "story/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">New Story</legend>
{{ s_form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Create Story</button>
</div>
</form>
</div>
{% endblock content %}
В данный момент я не вижу своей ошибки и поэтому вижу не знаю как продолжить. Спасибо большое за вашу поддержку. Я действительно ценю каждый намек!
Привет!