Как сохранить данные из form.ModelForm в базе данных, а также показать новый пост в шаблоне?

avatar
Mehroz Malik
8 августа 2021 в 15:57
23
0
0

Я отрисовываю шаблон для создания нового поста, но в браузере ничего не отображается Я работаю над фреймворком django

View.py

def create_post(request):
    form = PostForm(request.POST)
    if form.is_valid():
        post = form.save(commit=False)
        post.author = request.user
        post.date_posted = timezone.now()
        post.save()
        return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
    return render(request, 'post_detail.html', {'form': form})

Forms.py

from django import forms
from django.forms import ModelForm, fields

from .models import Post
    
    
class PostForm(forms.ModelForm):
    class Meta:
           model = Post
           fields = ['title', 'description', 'date_posted', 'author']

urls.py

from django.http import request
from django.urls import path

from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('create/', views.create_post, name='create-post'),
    path('detail/<int:pk>/', views.PostDetailView.as_view(), name='post-detail'),
]
Источник
allexiusw
8 августа 2021 в 16:11
0

Логика вроде хорошая. Можете ли вы поделиться своим файлом urls.py. И если у вас есть конкретная ошибка, добавьте ее в ответ. И подробно опишите, что не так с вашим кодом.

Mehroz Malik
8 августа 2021 в 16:16
0

urls.py: запрос импорта из django.http из пути импорта django.urls из . URL-адреса представлений импорта = [ path('', views.home, name='home'), path('create/', views.create_post, name='create-post'), path('detail/<int:pk >/', views.PostDetailView.as_view(), name='post-detail'), ] Ничего не отображается в шаблоне

allexiusw
8 августа 2021 в 16:18
0

Пожалуйста, добавьте это в свой ответ, отредактируйте свой вопрос, чтобы его было легко понять другим, кто проверит ваш вопрос и попытается вам помочь.

allexiusw
8 августа 2021 в 16:19
0

И в этот момент добавьте также то, что не так с вашим кодом.

Mehroz Malik
8 августа 2021 в 16:29
0

конечно, братан, я изменю это.

Brian Destura
9 августа 2021 в 00:44
0

Можете ли вы проверить, возвращает ли form.is_valid() значение true?

Ответы (0)