【发布时间】:2019-10-08 03:34:17
【问题描述】:
我正在使用 modelform 的模型部门不工作。 (顺便说一句,我在同一个项目的用户应用程序中也有一个自定义用户模型)。我得到的只是 html 输出中的“测试”按钮。此外,显示更改电子邮件和注销可能是在中间件中使用 allauth 的结果。我不知道 allauth 是否干扰了这个(希望没有)。我已将部门模型添加到 admin 但下面描述的 admin 中出现了一些奇怪的东西
我尝试过多种方式进行调试。
这是模型
from django.db import models
from django.conf import settings
from users.models import User,UserProfile
# Create your models here.
class department(models.Model):
Dept_CHOICES = (
(1, 'Inventory'),
(2, 'Dispatch'),
)
dept_type = models.PositiveSmallIntegerField(choices=Dept_CHOICES,default=1,unique=False),
HOD = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,),
Invest = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,),
def __str__(self):
return self.dept_type
这是查看代码
def add_model(request):
if request.method == "POST":
form = departForm(request.POST)
if form.is_valid():
model_instance = form.save(commit=False)
model_instance.save()
return redirect('/')
else:
form = departForm()
return render(request, "test.html", {'form': form})
base.html
<!-- templates/base.html -->
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<main>
{% block content %}
{% endblock %}
</main>
</body>
</html>
test.html
{% extends 'base.html' %}
{% block content %}
<div class = "container">
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Test up</button>
</form>
</div>
{% endblock %}
admin.py
from core1.models import department
# Register your models here.
@admin.register(department)
class DepartmentAdmin(admin.ModelAdmin):
pass
站点 admin 中的输出是一个具有奇怪名称的单个字段
<django.db.models.fields.PositiveSmallIntegerField>
有关其他信息,我在同一个 views.py 文件中使用类视图和函数视图。希望是允许的。
我希望显示表单 尝试了 form.as_p 但得到了
<<bound method BaseForm.as_p of <departForm bound=False, valid=False, fields=()>>
试过form.valid
<bound method BaseForm.is_valid of <departForm bound=False, valid=False, fields=()>>
【问题讨论】:
标签: python html django django-forms