我正在構建一個簡單的食譜應用程式,到目前為止我有兩個模型:Ingredient和Recipe.
每個食譜都應該有多種成分,所以我這樣布置我的模型:
class Ingredient(models.Model):
name = models.CharField(max_length=50)
class Recipe(models.Model):
title = models.CharField(max_length=100)
ingredients = models.ForeignKey(Ingredient, on_delete=CASCADE)
instructions = JSONField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=SET_DEFAULT, default='Chef Anon')
當我進行遷移時,我什么也得不到,但是當我遷移時,我得到了這個 ValueError:
ValueError: Cannot alter field cookbook.Recipe.ingredients into cookbook.Recipe.ingredients - they do not properly define db_type (are you using a badly-written custom field?)
按照此處的示例(Django:在同一模型但不同的類中添加外鍵),我嘗試設定ingredients=models.ForeignKey(Ingredient, on_delete=CASCADE)以及使用惰性語法ingredients=models.ForeignKey("Ingredient", on_delete=CASCADE),但每次都makemigrations沒有顯示任何更改,并migrate給我相同的ValueError.
編輯 我的進口:
from django.db.models.deletion import CASCADE, SET_DEFAULT, SET_NULL
from django.db.models.fields.json import JSONField
from django.utils import timezone
from django.contrib.auth.models import User```
uj5u.com熱心網友回復:
嘗試替換on_delete=CASCADE為on_delete=models.CASCADE
如果您沒有CASCADE從models.
盡管如此,在這種情況下,您應該收到“未定義 CASCADE”的警告。
uj5u.com熱心網友回復:
我相信我發現了問題:我的models.py檔案在根目錄中,而不是在 app 目錄中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372420.html
