python - 如何在 Django 管理更改表单中显示相关表的内容?

标签 python django django-models django-admin

我是编程、Python 和 Django 的新手,因此感谢您的耐心等待。我一直在 Django 中编写一个用于存储 cooking 食谱的练习应用程序。我有两个模型:

class Recipe(models.Model):
    recipe_name = models.CharField(max_length=30)
    recipe_instructions = models.TextField()
    recipe_whyitworks = models.TextField(verbose_name="Why It Works")
    recipe_date = models.DateField()
    def __str__(self):
       return self.recipe_name
    def was_published_recently(self):
       return self.recipe_date >= timezone.now() -datetime.timedelta(days=5)

class Ingredient(models.Model):
    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    ingredient_name = models.CharField(max_length=30)
    ingredient_qty = models.DecimalField(verbose_name='Quantity', max_digits=3, decimal_places=2)
    ingredient_uom = models.CharField(verbose_name='Unit of Measure', max_length=15)
    def __str__(self):
        return self.ingredient_name

我将管理员设置为能够编辑任一表:

from django.contrib import admin

# Register your models here.
from .models import Recipe, Ingredient

admin.site.register(Recipe)
admin.site.register(Ingredient)

我想要做的是,当我单击“成分”时,我希望它显示之前添加到配方中的所有成分,以及表格中每种成分的数量和计量单位以及字段这允许我添加一个新的。预先感谢您的帮助!

最佳答案

您可以像这样添加内联:

admin.py

from django.contrib import admin

class IngredientInline(admin.TabularInline):
    model = Ingredient

class RecipeAdmin(admin.ModelAdmin):
    inlines = [
        IngredientInline,
    ]

admin.site.register(Recipe, RecipeAdmin)
admin.site.register(Ingredient)

关于python - 如何在 Django 管理更改表单中显示相关表的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167525/

相关文章:

python - 将数据添加到 CSV 文件中的新列和第一行

python - 如何使用 gunicorn 在 django 中编写 log.info() 以进行控制台?

python - 具有多个参数的 Django 动态 url

django - 使用docker-compose时Django无法找到数据库

python - 已定义函数中未解析的引用

django - 从麦克风录制音频并另存为.wav django Web应用

python - Django 使用条件进行建模

django - 使用 _set.all 时颠倒顺序

django - 更新 django 模型对象的单个字段的简洁方法

python - Django 教程,获取 : TypeError at/admin/argument to reversed() must be a sequence