【发布时间】:2022-01-09 02:13:49
【问题描述】:
我正在构建一个简单的食谱应用程序,到目前为止我有两个模型: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: Add foreign key in same model but different class),我尝试设置 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```
【问题讨论】:
标签: python django database class model