python - 模型表单不是使用 django 模型表单自动生成的
问题描述
我正在使用模型表单创建 Django 表单,因为您希望自动创建表单,但是当我创建此代码时,表单不会出现在 index.html 页面中
模型.py
from django.db import models
class BaseCase(models.Model):
base_case_name = models.CharField(primary_key=True, max_length=255)
version = models.TextField(blank=True, null=True)
default = models.TextField(blank=True, null=True) # This field type is a guess.
class Meta:
managed = False
db_table = 'base_case'
表格.py
from django import forms
from SFP.models import *
class BaseCaseForm(forms.ModelForm):
class Meta :
model = BaseCase
fields='__all__'
视图.py
from django.shortcuts import render,redirect
from .models import *
from .forms import *
def addbc(self, request):
bcform=BaseCaseForm(request.POST)
bcform.save()
basecasename = bcform.cleaned_data['post']
version = bcform.cleaned_data['post']
default = bcform.cleaned_data['post']
bcform = BaseCaseForm()
return redirect('index.html')
args = {'bcform':bcform,
'basecasename': basecasename,
'version': version,
'default' :default}
return render(request, 'index.html', args)
索引.html
<!DOCTYPE html>
<html>
<head>
<title>S&FP</title>
</head>
<body>
<h1>Forms</h1>
{% csrf_token %}
{{ bcform }}
<input type="submit" value="add">
</body>
</html>
我认为这也很重要 urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^$', views.addbc),
]
我期待表单字段会自动生成,但它们没有出现!
解决方案
您可以尝试 CreateView 它将为您的模型创建表单。在文档中找到更多关于它的信息
在您的情况下,创建一个像这样的视图:
视图.py
class BaseCaseCreate(CreateView):
model = BaseCase
template_name = 'index.html'
success_url = reverse_lazy('app:home')
fields = ('base_case_name','version','default')
索引.html
<!DOCTYPE html>
<html>
<head>
<title>S&FP</title>
</head>
<body>
<h1>Forms</h1>
{% csrf_token %}
{{ form }}
<input type="submit" value="add">
</body>
我希望这有帮助。
推荐阅读
- css - 引导响应表上的粘滞表标题
- java - Swing & JavaFX:如何将 JavaFX MouseEvent 转换为 Swing MouseEvent?
- python - Python中的Smartsheet库:模块'smartsheet.sheets'没有属性'sheets'
- react-select - react-select 不更改远程 url 链接字段
- c++ - 错误 C2131:创建结构数组时,表达式未计算为常量
- flutter - SetState 不更新小部件
- azure - 删除/删除 Azure AlertRule
- xml - 从 HDFS 读取 XML 文件以在 Pyspark 中使用 lxml.etree 进行解析
- excel - 在excel中增加日期时间值的公式
- laravel - Construct function not working in Laravel helper