Можно ли это сделать с помощью Django Admin?

У меня есть модель ингредиентов, которая отображает параметры "порция и вес" для каждого ингредиента в админке

enter image description here

Админ ингредиентов "встроен" в MealAdmin. Я пытаюсь также показать опции "порция и вес" для каждого ингредиента. Можно ли это сделать в админке?

models.py

class Meal(models.Model):
    meal_name = models.CharField(max_length=200, blank=False)
    meal_image_url = models.CharField(max_length=200, default="")
    ingredient = models.ForeignKey(Ingredient, on_delete=DO_NOTHING, related_name="mealingredient")

    def __str__(self):
        return f'{self.meal_name}'

class Ingredient(models.Model):
    food_code = models.IntegerField(default=0)
    language = models.CharField(max_length=2, choices=LANGUAGE_CHOICES, default='en')
    water_g = models.DecimalField(decimal_places=3, max_digits=10, default=0)

    modifier = models.ManyToManyField(IngredientFoodPortion)

    class Meta:
        ordering = ['item_description']

    def __str__(self):
        return f'{self.item_description}'

    objects = models.Manager()

И admin.py

я пытался получить ingredient_id, чтобы использовать его для фильтрации в обоих классах Admin, но он всегда возвращается пустым в обоих:

class IngredientAdmin(admin.ModelAdmin):
    my_id_for_formfield = None

    def get_form(self, request, obj=None, **kwargs):
        if obj:
            self.my_id_for_formfield = obj.food_code
        return super(IngredientAdmin, self).get_form(request, obj, **kwargs)

    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "serving":
            kwargs["queryset"] = IngredientFoodPortion.objects.filter(food_code=self.my_id_for_formfield).distinct()
        return super(IngredientAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)


admin.site.register(Ingredient, IngredientAdmin)


class MealAdmin(admin.ModelAdmin):
    my_id_for_formfield = None

    def get_form(self, request, obj=None, **kwargs):
        if obj:
            self.my_id_for_formfield = obj.food_code
        return super(MealAdmin, self).get_form(request, obj, **kwargs)

    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "serving":
            kwargs["queryset"] = IngredientFoodPortion.objects.filter(food_code=self.my_id_for_formfield)
        return super(MealAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)


admin.site.register(Meal, MealAdmin)

Заранее спасибо...

Вернуться на верх