簡體   English   中英

Django model 外鍵還是 charfield?

[英]Django model foreignkey or charfield?

Django Model 和我要制作的表格

你好。 我是 Django 的新手,我很難理解要使用哪個 model 字段。 我沒有發布任何代碼,因為我的代碼現在太亂了,而且大部分代碼仍然遵循 William S. Vincent 的“Django for Beginner”一書。

我有一個包含 2 個模型的應用程序, Product model 和Production model。生產 model 上的某些字段鏈接到產品 model。然后從生產 model,我使用ModelForm為用戶輸入制作了一個表格。 (這里有一個圖像鏈接,可以幫助理解 model 並形成關系。)

關於這件事,我有幾個問題。

  1. 如果我將Production Model 上的product_id設置為ProductForeignKey ,我應該為product_namematerial使用什么字段?
  2. 當我對product_name material CharField product_name material我不希望這樣。 如何將其更改為只讀並根據product_id更新值? (我不確定這是否與 Django 表格有關。)
  3. 現在我正在使用ModelForm制作Production表單,然后使用FormView呈現表單。 這是正確的方法嗎? 這個和model的CreateView有什么區別?

提前感謝您的任何評論和回答。

如果您有產品 model 的名稱和材料,則不需要生產 model 上的名稱和材料,除非它們與生產 object 相關。如果我是你,我會在產品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 頁左右。 您也可以用它做只讀字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM