以一种形式的django创建父子模型

Create parent and child model in one form django

我正在尝试构建一个表单来创建具有 RecipeRecipeIngredient 模型的食谱,但是当用户创建食谱时,我如何将它们都放在相同的表单中,因为 RecipeIngredient依赖于Recipe的外键还没有初始化?我是否需要在每次用户访问创建页面时都创建一个空白食谱才能实现这一点?

models.py:

class Recipe(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='image/', blank=True, null=True)
    name = models.CharField(max_length=220) # grilled chicken pasta
    description = models.TextField(blank=True, null=True)

class RecipeIngredient(models.Model):
    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    name = models.CharField(max_length=220) # grilled chicken pasta
    description = models.TextField(blank=True, null=True)

使用formsetformset 是一个抽象层,用于处理同一页面上的多个表单。

查看官方文档example