中间模型没有显示在管理控制台中?



我对编程、Django和创建应用程序还是比较陌生的,所以请原谅我。我正在开发一个饮食应用程序,我很难想象和理解为什么我的一个模型的ManyToManyField的特定用例没有显示在管理控制台上。我试着阅读Django文档的ManyToManyField关系,但我仍然有困难理解它,所以希望有人能解释这个给我像我是一个快乐的金毛猎犬。

我有三个模型:

class Product(models.Model):
product_name = models.CharField(verbose_name='Product name', max_length=100)
product_description = models.TextField(verbose_name='Product description', max_length=500)
product_id = models.UUIDField(default=uuid.uuid4(), unique=True)
def __str__(self):
return self.product_name
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
class Recipe(models.Model):
recipe_name = models.CharField(verbose_name='Recipe name', max_length=100)
ingredients = models.ManyToManyField(Product, related_name='Ingredients', through='IngredientQuantity', through_fields=('recipe','ingredient'))

class Meta:
ordering = ['recipe_name']
def __str__(self):
return self.recipe_name   
#-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
class IngredientQuantity(models.Model):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
ingredient = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.DecimalField(verbose_name='Quantity', decimal_places=2, max_digits=99, null=False)

我想做的是用IngredientQuantity创建一个中介,它将为我提供数量以及选定的Product,然后我可以将其与Recipe关联。

然而,当我试图在Django管理控制台为Recipe创建一个新条目时,我没有看到Recipeingredients输入,这应该是这样吗?

在你的应用程序中admin.py文件添加以下行:

from django.contrib import admin
from .models import Product, Recipe, IngredientQuantity
admin.site.register(Product)
admin.site.register(Recipe)
admin.site.register(IngredientQuantity)

然后你应该在管理界面中看到你的模型。

最新更新