【问题标题】:My django modelform not showing any inputfields我的 django modelform 没有显示任何输入字段
【发布时间】:2020-05-18 07:05:02
【问题描述】:

目前我正在关注一个关于 django 的教程。但现在我陷入了在 django 中创建表单的过程中。 我看了很多教程,也阅读了 django 文档,但到目前为止我无法解决我的问题。

我尝试从我的数据库中的模型创建表单

这是我的代码:

models.py

class Order(models.Model):
  STATUS = (
      ('Pending', 'Pending'),
      ('Out of Delivery', 'Out of Delivery'),
      ('Delivered', 'Delivered')
  )
  customer = models.ForeignKey(Customer, null=True, on_delete=models.SET_NULL)
  product = models.ForeignKey(Product, null=True, on_delete=models.SET_NULL)
  date_created = models.DateTimeField(auto_now_add=True, null=True)
  status = models.CharField(max_length=200, null=True, choices=STATUS)

views.py

from django.shortcuts import render
from .models import *
from .forms import OrderForm

def create_order(request):
   form = OrderForm()
   context = {
      'form': form
   }
   return render(request, 'accounts/create_order.html', context)

forms.py

from django.forms import ModelForm
from .models import *


class OrderForm(ModelForm):
   class Meta:
      model = Order
      fields = '__all__'

create_order.html

{% extends 'accounts/main.html'%}
{% block content%}
<form action="" method="POST">
  {% csrf_token%}
  {{form.as_p}}
</form>
{% endblock %}

问题是,create_order.html 向我显示了表单的标签,但没有显示输入字段,我不知道为什么。 我添加了我的浏览器的图片,所以你明白我的意思。 如果有人可以帮助我解决我的问题,我将不胜感激

【问题讨论】:

  • 检查 HTML 源代码显示的内容;可能发生了什么阻止显示字段,即使它们在那里。
  • 如果可能,您可能还想提及(并可选择链接到)您正在关注的教程。并指出你正在使用的 Django 版本,以完成。

标签: django django-forms


【解决方案1】:

感谢您的 cmets,我得到了解决方案:

我将物化框架用于我的前端。我不知道为什么,但默认情况下,物化将显示属性从选择设置为无。 所以我制作了自己的自定义 css 文件,并将 select 中的 display 属性设置为 block 并且它起作用了!

也许该解决方案也可以帮助其他人。

【讨论】:

  • Materialize 在选择时使用 display:none,因为它使用动态创建的文本输入和下拉菜单。 (Selects 也需要用 JS 初始化)。复选框和单选按钮设置为 opacity:0 因为 Materialize 再次使用它自己的元素代替它们。所有其他输入 - 文本、电子邮件、文本区域、提交等 - 未设置为 display:none,如果您在样式表中看到此内容,则冲突来自项目中的另一个 CSS 文件。
猜你喜欢
  • 1970-01-01
  • 2018-06-25
  • 2013-09-19
  • 1970-01-01
  • 2021-07-06
  • 2014-04-05
  • 2019-02-17
  • 1970-01-01
相关资源
最近更新 更多