小编Pet*_*ich的帖子

django在一个模板上具有相同字段名称的两个ModelForms

我有两个模型,都有字段"状态",对它们有不同的含义.

class Order(models.Model):
    ...
    status = models.PositiveIntegerField(default=0, choices=ORDER_STATUSES)
    ...

class ACS(models.Model):
    status = models.IntegerField(default=-1, choices=STATUSES)
    order = models.ForeignKey(Order, blank=True, null=True)
    ...
Run Code Online (Sandbox Code Playgroud)

他们的形式如下:

class ACSForm(forms.ModelForm):
    status = forms.ChoiceField(
        choices=STATUSES,
        widget=forms.Select(attrs={'class': 'form-control'})
    )
    ...

    class Meta:
       model = ACS
       fields = ('status',)

class OrderACSEditForm(forms.ModelForm):
    status = forms.ChoiceField(
        choices=ORDER_STATUSES,
        widget=forms.Select(attrs={'class': 'form-control'})
    )

    class Meta:
        model = Order
        fields = ('status',)
Run Code Online (Sandbox Code Playgroud)

我想在同一页面上编辑这两个字段.我的view.py看起来像

def edit(request, item_id=""):
    data = ACS.objects.get(pk=item_id)
    form = ACSForm(instance=data)
    order = Order.objects.get(id=data.order.id)
    form_edit = OrderACSEditForm(instance=order)
    if request.POST:
        form = ACSForm(request.POST, …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-models django-forms

6
推荐指数
1
解决办法
1078
查看次数