模型表单不显示

2024-09-27 00:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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 %}

管理员

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文件中使用class view和function view。希望这是允许的

我希望表格能显示出来 试过了,但得到了

<<bound method BaseForm.as_p of <departForm bound=False, valid=False, fields=()>>

试过的形式

<bound method BaseForm.is_valid of <departForm bound=False, valid=False, fields=()>>

Tags: djangofrom模型importformfalseadminmodels
1条回答
网友
1楼 · 发布于 2024-09-27 00:18:14

我自己解决的

  1. 我查看了管理员网站。没有显示部门模型。这意味着要么我没有正确迁移,要么我的部门模型有问题
  2. 我的部门模型的所有字段都以(逗号)结尾。删除了相同的选项,使模型更加健壮,没有错误
  3. 已删除所有迁移并完成新迁移
  4. 修改管理员如下
# Register your models here.
class departmentadmin(admin.ModelAdmin):
    fields = ['HOD', 'Investigator', 'dept_type']
    list_display = ('HOD','Investigator','dept_type')
    pass

admin.site.register(department, departmentadmin)

现在,管理员还显示D部门,表单还显示具有所需输出的部门

相关问题 更多 >

    热门问题