Django 模型外键还是 charfield?
Django model foreignkey or charfield?
Django Model and Form that I want to make
您好。我是 Django 的新手,我很难理解要使用哪个模型字段。我没有 post 任何代码,因为我的代码现在太乱了,而且大部分代码仍然遵循 William S. Vincent 的“Django for Beginner”一书。
我有一个包含 2 个模型的应用程序,Product
模型和 Production
模型。生产模型上的某些字段已 link 编辑到产品模型。然后根据生产模型,我使用 ModelForm
为用户输入创建了一个表单。 (图像有一个 link 以帮助理解模型和形成关系。)
关于这件事我有几个问题。
- 如果我将
Production
模型上的 product_id
设置为 ForeignKey
到 Product
,我应该为 product_name
和 material
使用哪个字段?
- 当我对
product_name
和 material
使用 CharField
时,表格上有 product_name
和 material
的条目,但我没有想要那个。如何将其更改为只读并根据 product_id
更新值? (我不确定这是否与 Django 表单有关。)
- 现在我正在使用
ModelForm
制作 Production
表单,然后使用 FormView
呈现表单。这是正确的方法吗?这个和模型的CreateView
有什么区别?
提前感谢您的任何评论和回答。
如果产品模型上有名称和 material,则生产模型上不需要它们,除非它们与生产对象相关。如果我是你,我会在产品的 Production
上有一个外键。它可能看起来像;
class Production(models.Model):
product = models.ForeignKey(
to=Product,
verbose_name=_("Product"),
on_delete=models.CASCADE
)
machine = models.CharField(
verbose_name=_("Machine No"),
max_length=255
)
date = models.DateTimeField(
verbose_name=_("Date"),
blank=True,
null=True
)
那么你的表格可能是;
class ProductionForm(forms.ModelForm):
class Meta:
model = Production
fields = (
'product',
'machine',
'date',
)
我建议在开始使用视图之前使用 django 管理器来获取您想要的模型。如果您知道数据以您需要的方式存储,那么您就可以担心构建前端。管理员在您所拥有的那本书的第 70 页左右。您也可以用它做只读字段。
Django Model and Form that I want to make
您好。我是 Django 的新手,我很难理解要使用哪个模型字段。我没有 post 任何代码,因为我的代码现在太乱了,而且大部分代码仍然遵循 William S. Vincent 的“Django for Beginner”一书。
我有一个包含 2 个模型的应用程序,Product
模型和 Production
模型。生产模型上的某些字段已 link 编辑到产品模型。然后根据生产模型,我使用 ModelForm
为用户输入创建了一个表单。 (图像有一个 link 以帮助理解模型和形成关系。)
关于这件事我有几个问题。
- 如果我将
Production
模型上的product_id
设置为ForeignKey
到Product
,我应该为product_name
和material
使用哪个字段? - 当我对
product_name
和material
使用CharField
时,表格上有product_name
和material
的条目,但我没有想要那个。如何将其更改为只读并根据product_id
更新值? (我不确定这是否与 Django 表单有关。) - 现在我正在使用
ModelForm
制作Production
表单,然后使用FormView
呈现表单。这是正确的方法吗?这个和模型的CreateView
有什么区别?
提前感谢您的任何评论和回答。
如果产品模型上有名称和 material,则生产模型上不需要它们,除非它们与生产对象相关。如果我是你,我会在产品的 Production
上有一个外键。它可能看起来像;
class Production(models.Model):
product = models.ForeignKey(
to=Product,
verbose_name=_("Product"),
on_delete=models.CASCADE
)
machine = models.CharField(
verbose_name=_("Machine No"),
max_length=255
)
date = models.DateTimeField(
verbose_name=_("Date"),
blank=True,
null=True
)
那么你的表格可能是;
class ProductionForm(forms.ModelForm):
class Meta:
model = Production
fields = (
'product',
'machine',
'date',
)
我建议在开始使用视图之前使用 django 管理器来获取您想要的模型。如果您知道数据以您需要的方式存储,那么您就可以担心构建前端。管理员在您所拥有的那本书的第 70 页左右。您也可以用它做只读字段。