【问题标题】:Model Form not displaying模型表格不显示
【发布时间】: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


    【解决方案1】:

    我自己解决了!

    1. 我检查了管理站点。没有部门模型显示。这意味着要么我没有正确迁移,要么我的部门模型有问题
    2. 我的部门模型的所有字段都以 ,(逗号)结尾。删除了相同的内容,使模型更加健壮且没有错误。
    3. 删除所有迁移并完成新迁移
    4. 修改Admin如下
    # 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)
    

    现在管理员还显示 dpartment 和表单也显示具有所需输出的部门..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-19
      • 2012-06-14
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      相关资源
      最近更新 更多