- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在创建一个 Django 应用程序,其中每个站点都有一个从一系列可能的类别中选择的类别。所以我有两个模型:Site
和 Category
。
我希望在 Site
和 Category
模型之间建立多对一关系。 Category
表包含一系列不同的类别,每个 Site
记录都将有一个引用这些类别之一的外键。
模型.py:
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible # for python 2 support
class Site(models.Model):
Category = models.ForeignKey('Category')
def __str__(self):
return self.Name
CATEGORY_CHOICES = (
('AU', 'Automobiles'),
('BE', 'Beauty Products'),
('GR', 'Groceries'),
)
class Category(models.Model):
Category = models.CharField(choices=CATEGORY_CHOICES,max_length=2)
def __str__(self):
return '%s' % (self.Category)
表单.py:
from django.forms import ModelForm
from sites.models import Site
class NewSiteForm(ModelForm):
class Meta:
model = Site
fields = ['Category']
newsite.html:
<!DOCTYPE html>
<form method="post" action="">
{{ form}}
</form>
Newsite.html 为我提供了一个类别下拉列表,其中列出了已存储在类别数据库中的值,而不是列出类别模型中定义的选择元组的内容。所以我得到了这个:
<!DOCTYPE html>
<form method="post" action="">
<tr><th><label for="id_Category">Category:</label></th><td><select id="id_Category" name="Category">
<option value="" selected="selected">---------</option>
<option value="1">AU</option>
<option value="2">BA</option>
<option value="3">BE</option>
<option value="4">BO</option>
<option value="5">PH</option>
<option value="6">CO</option>
<option value="7">CC</option>
<option value="8">CB</option>
<option value="9">CE</option>
<option value="10">CS</option>
<option value="11">CA</option>
<option value="12">EA</option>
<option value="13">EC</option>
<option value="14">FA</option>
<option value="15">GR</option>
<option value="16">HA</option>
<option value="17">HE</option>
<option value="18">HG</option>
<option value="19">IN</option>
<option value="20">JE</option>
<option value="21">LT</option>
<option value="22">MS</option>
<option value="23">MU</option>
<option value="24">MI</option>
<option value="25">OF</option>
<option value="26">OU</option>
<option value="27">PC</option>
<option value="28">SH</option>
<option value="29">SO</option>
<option value="30">SP</option>
<option value="31">TO</option>
<option value="32">TY</option>
<option value="33">DV</option>
<option value="34">CL</option>
<option value="35">WA</option>
<option value="36">WI</option>
</select></td></tr>
</form>
我希望表单只显示模型中定义的三个选择,而不是数据库的内容,如下所示:
<!DOCTYPE html>
<form method="post" action="">
<tr><th><label for="id_Category">Category:</label></th><td><select id="id_Category" name="Category">
<option value="" selected="selected">---------</option>
<option value="AU">Auto</option>
<option value="BE">Beauty Products</option>
<option value="GR">Groceries</option>
</select></td></tr>
</form>
我在这里不明白什么?我该如何完成这项工作?
(请注意,CATEGORY_CHOICES
中会有一个元组,为 Category
表中存储的每个两个字母条目提供可读选择,但我通过不这样做来节省空间在这个问题中列出所有这些)。
最佳答案
您需要指定类别
型号:
class NewSiteForm(ModelForm):
class Meta:
model = Category # <--
fields = ['Category']
关于python - ModelForm 显示外键表值,而不是选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176735/
我基于几个 ModelForm 元素创建了一个表单。除了图像字段。由于缺少 ImageField form.is_valid() 总是返回 False - 即使我将 request.FILES 传递给
我需要将 CSS 类分配给表单字段,我指的是这篇 SO 帖子: CSS styling in Django forms 但是,我无法让它与扩展另一个 ModelForm 的 ModelForm 一起工
我是 Django 的新手,正在使用这个项目来学习它。我能够保存日志记录,但多对多关系不起作用。 这个“创建” View 显示了正确的形式,包括带有所有列出的加密货币的多选框(来自加密模型)。提交表单
为了确保强制用户从下拉列表中选择一个有效的值(而不是无意中保留列表集中的第一个选项而不将其更改为正确的值),我在许多必填表单域中插入了空白的选项域。。Models.py。原始forms.py(显式定义
我正在尝试使用 ModelForm 创建一个简单的 CRUD。它工作正常,只是每次我编辑时,保存都会创建一个新的数据实例。所以我编辑并在数据库中获得了一个额外的行而不是更新的行。我不知道它如何知道如何
Django 在其 ModelAdmin 对象上有自定义的“操作”,但我找不到与 ModelForm 对象类似的东西。我正在使用 Django-CMS,因此似乎无法轻松访问对象的 ListView ,
我正在尝试创建一个表单变量。默认播放器的级别为 0,他可以更改名称。以后到了1级,就可以改名字和头像了。当他3级时,他可以改变名字、头像和工作。等等... 模型.py: class Player(mo
现在正在尝试解决一个有趣的问题。 我有一个带有 image 的 Django 模型字段不是必需的,但在创建新模型实例时设置为默认值。 class Product(models.Model):
我发现Django中的ModelForm非常易于使用,并且节省了大量开发时间。 但是,当我意识到is_valid实际上保存了ModelForm时,我陷入了困境!我想知道这是否是预期的行为,还是我做错了
我的 modelForm 遇到了一个小问题,它可以工作,但是如果我尝试使用自定义 html,当我尝试遍历 form.bairro 时会出现错误。 我的型号: class Bairro(mode
在我的模型中,我有; title = models.CharField(verbose_name="eBay Listing Title",max_length=56) 使用 ModelForm,标签
我有一个非常基本的模型,上面有一个 ImageField,还有一个用于上传该图像的 ModelForm。我的表单失败,说我的图像无效,但是如果我直接从 request.FILES 实例化模型的图像,它
好的,我一直盯着这个几个小时试图弄清楚发生了什么,但无济于事。 我正在尝试使用“instance”关键字创建一个 ModelForm 以将其传递给现有模型实例,然后保存它。 这是 ModelForm(
我有模特: class TestPolja(models.Model): class Meta: verbose_name = 'Test polja' int
有这个禁用属性。但我无法将其应用于模型表单字段。我不知道该怎么做。我可以轻松地将它添加到 forms.Form 中。但是因为我使用的是小部件,所以我不知道在哪里插入它。 https://docs.dj
如何在我的模型表单中只保存选定的字段?文档对我没有帮助我的表格: class ProfileForm(forms.ModelForm): class Meta: model =
这里的 Django 初学者在让表单工作时遇到了很多麻烦。是的,我已经完成了教程并浏览了很多网络 - 我所拥有的是我在这里和其他网站上找到的东西的混合。我使用的是 Python 2.7 和 Djang
我有一个模型和一个表单 (forms.ModelForm),其中有一个 ImageField。该模型类似于: class Business(models.Model): business_na
我有一些带有用户字段的模型。 为此,我想创建一个表单混合,它将添加 self.user 实例(在 View 中提供给表单)。这可能吗? 这是示例 class UserFormMixin(object)
这个问题已经有答案了: How to update an object from edit form in Django? (2 个回答) 已关闭 7 年前。 我需要一个表格,允许在计划中创建或添加
我是一名优秀的程序员,十分优秀!