以一种形式的django创建父子模型
Create parent and child model in one form django
我正在尝试构建一个表单来创建具有 Recipe
和 RecipeIngredient
模型的食谱,但是当用户创建食谱时,我如何将它们都放在相同的表单中,因为 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)
使用formset
。 formset
是一个抽象层,用于处理同一页面上的多个表单。
查看官方文档example
我正在尝试构建一个表单来创建具有 Recipe
和 RecipeIngredient
模型的食谱,但是当用户创建食谱时,我如何将它们都放在相同的表单中,因为 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)
使用formset
。 formset
是一个抽象层,用于处理同一页面上的多个表单。
查看官方文档example