Python django CreateView表单未在html中加载

Python django CreateView表单未在html中加载,python,html,django,django-models,django-forms,Python,Html,Django,Django Models,Django Forms,我在这个话题上发现了很多类似的问题。它们都没有合适的解决方案。从未加载的模型创建视图表单 型号.py from django.db import models from django.contrib.auth.models import User # Create your models here. class Blog(models.Model): author: models.ForeignKey( User, on_delete=models.CASCADE,

我在这个话题上发现了很多类似的问题。它们都没有合适的解决方案。从未加载的模型创建视图表单

型号.py

from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class Blog(models.Model):
    author: models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='post_author')
    blog_title: models.CharField(max_length=264, verbose_name="Title")
    slug: models.SlugField(max_length=264, unique=True)
    blog_content: models.TextField(verbose_name="What is on your mind?")
    blog_image: models.ImageField(
        upload_to='blog_images', verbose_name='images')
    publish_date: models.DateField(auto_now_add=True)
    updated_date: models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.blog_title


from django.shortcuts import render, HttpResponseRedirect
from django.views.generic import CreateView, DeleteView, UpdateView, ListView, DetailView, View, TemplateView
from App_Blog.models import Blog, Comment, Likes
from django.urls import reverse, reverse_lazy
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin

# Create your views here.


def blog_list(request):
    return render(request, 'App_Blog/blog_list.html', context={})


class CreateBlog(LoginRequiredMixin, CreateView):
    model = Blog
    template_name = 'App_Blog/create_blog.html'
    fields = '__all__'
from django.urls import path
from App_Blog import views

app_name = 'App_Blog'

urlpatterns = [
    path('', views.blog_list, name='blog_list'),
    path('write/', views.CreateBlog.as_view(), name='create_blog'),
]
视图.py

from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class Blog(models.Model):
    author: models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='post_author')
    blog_title: models.CharField(max_length=264, verbose_name="Title")
    slug: models.SlugField(max_length=264, unique=True)
    blog_content: models.TextField(verbose_name="What is on your mind?")
    blog_image: models.ImageField(
        upload_to='blog_images', verbose_name='images')
    publish_date: models.DateField(auto_now_add=True)
    updated_date: models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.blog_title


from django.shortcuts import render, HttpResponseRedirect
from django.views.generic import CreateView, DeleteView, UpdateView, ListView, DetailView, View, TemplateView
from App_Blog.models import Blog, Comment, Likes
from django.urls import reverse, reverse_lazy
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin

# Create your views here.


def blog_list(request):
    return render(request, 'App_Blog/blog_list.html', context={})


class CreateBlog(LoginRequiredMixin, CreateView):
    model = Blog
    template_name = 'App_Blog/create_blog.html'
    fields = '__all__'
from django.urls import path
from App_Blog import views

app_name = 'App_Blog'

urlpatterns = [
    path('', views.blog_list, name='blog_list'),
    path('write/', views.CreateBlog.as_view(), name='create_blog'),
]
url.py

from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class Blog(models.Model):
    author: models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='post_author')
    blog_title: models.CharField(max_length=264, verbose_name="Title")
    slug: models.SlugField(max_length=264, unique=True)
    blog_content: models.TextField(verbose_name="What is on your mind?")
    blog_image: models.ImageField(
        upload_to='blog_images', verbose_name='images')
    publish_date: models.DateField(auto_now_add=True)
    updated_date: models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.blog_title


from django.shortcuts import render, HttpResponseRedirect
from django.views.generic import CreateView, DeleteView, UpdateView, ListView, DetailView, View, TemplateView
from App_Blog.models import Blog, Comment, Likes
from django.urls import reverse, reverse_lazy
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin

# Create your views here.


def blog_list(request):
    return render(request, 'App_Blog/blog_list.html', context={})


class CreateBlog(LoginRequiredMixin, CreateView):
    model = Blog
    template_name = 'App_Blog/create_blog.html'
    fields = '__all__'
from django.urls import path
from App_Blog import views

app_name = 'App_Blog'

urlpatterns = [
    path('', views.blog_list, name='blog_list'),
    path('write/', views.CreateBlog.as_view(), name='create_blog'),
]
我正在尝试加载此html页面中的表单: 创建_blog.html

{% extends 'base.html' %}
{% load crispy_forms_tags %}

{% block title_block %}
Write a Blog
{% endblock title_block %}


{% block body_block %}
<h2>Start Writing:</h2>
<form method="POST" enctype="multipart/form-data">
    {{ form | crispy }}
    {% csrf_token %}
    <button type="button" class="btn btn-success btn-sm">Publish</button>
</form>
{% endblock body_block %}
{%extends'base.html%}
{%load crispy_forms_tags%}
{%block title\u block%}
写博客
{%endblock title_block%}
{%block body_block%}
开始写:
{{form | crispy}}
{%csrf_令牌%}
发表
{%endblock body_block%}
重新加载后,我只获取base.html和按钮,表单除外。

如果没有正确定义模型字段,则需要使用
=
而不是
来定义字段

class Blog(models.Model):
    author = models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='post_author')
    blog_title = models.CharField(max_length=264, verbose_name="Title")
    slug = models.SlugField(max_length=264, unique=True)
    blog_content = models.TextField(verbose_name="What is on your mind?")
    blog_image = models.ImageField(
        upload_to='blog_images', verbose_name='images')
    publish_date = models.DateField(auto_now_add=True)
    updated_date = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.blog_title

是的,我刚发现你也发了。谢谢