Python django CreateView表单未在html中加载
我在这个话题上发现了很多类似的问题。它们都没有合适的解决方案。从未加载的模型创建视图表单 型号.pyPython 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,
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
是的,我刚发现你也发了。谢谢