Django 如何向ModelMultipleChiceField添加额外数据?

Django 如何向ModelMultipleChiceField添加额外数据?,django,django-forms,Django,Django Forms,我在做卡路里计数器。用户可以从菜品列表中选择(使用a很容易),但他们还需要指定每个菜的份量,其中上菜大小是我的菜型号的一个字段 基本上,我希望它看起来像这样: {"dish": <Dish model>, "servings": 2.5} {% for dish in form.fountain_dishes %} {{dish}} I ate <input type="number"> {{dish.context.serving_size}} {%

我在做卡路里计数器。用户可以从菜品列表中选择(使用a很容易),但他们还需要指定每个
菜的份量
,其中
上菜大小
是我的
型号的一个字段

基本上,我希望它看起来像这样:

{"dish": <Dish model>, "servings": 2.5}
{% for dish in form.fountain_dishes %}
    {{dish}}
    I ate <input type="number"> {{dish.context.serving_size}}
{% endfor %}

问题是,为了显示字符串“4盎司服务”和“切片”,在渲染字段时,我需要访问
模型

最好的方法是什么


到目前为止,我有两个粗略的想法:

  • 创建一个自定义的
    小部件
    ,它将呈现为复选框和数字输入字段。当数据被反序列化时,它会变成这样:

    {"dish": <Dish model>, "servings": 2.5}
    
    {% for dish in form.fountain_dishes %}
        {{dish}}
        I ate <input type="number"> {{dish.context.serving_size}}
    {% endfor %}
    
    但是,我不确定如何使我的
    clean
    方法处理这个意外数据


  • disk
    型号是什么样的?表单中还包括其他型号吗?菜肴有
    名称
    上菜尺寸
    、以及大量的
    卡路里
    。此表单应该创建一个用餐对象,该对象有一个多个字段,其中包含用户吃的所有菜肴以及该餐的卡路里总数。您解决过这个问题吗?我非常需要一个小部件,它可以让我为m2m关系中选择的每个项目填充额外的数据。我将其分解并用javascript实现。这是我的模板(注意第6行):这是我的javascript: