Django:将新的寄存器添加到数据库后,更新表单中的manytomany下拉菜单

问题描述

我希望足够清楚。

我有一个与ForeignKey关联到Deal模型的Campaign模型。创建新的广告系列时,我必须从下拉菜单中选择交易,也可以按+按钮创建新交易。单击此+按钮将打开一个新窗口,您可以在其中创建和保存交易。 关闭此窗口并返回到“创建广告系列”窗口,如果刷新页面后未显示新交易,则下拉菜单中不会显示新交易(这会导致之前填写的所有字段都丢失)。

如何复制管理员行为?在管理面板中创建交易后,广告系列下拉列表会自动使用新交易进行更新。

我的简化模型。py:

class campaign(models.Model):
    Deal = models.ForeignKey(deal,on_delete=models.CASCADE,null=True)
    Name_Campaign = models.TextField(max_length=50,null=True,blank=True)

class deal(models.Model):     
    Deal = models.TextField(max_length=50,blank=True)

我的简化表格。py

class create_campaign(ModelForm):
    Name_Campaign = forms.CharField(
        widget=forms.TextInput(
            attrs={
                    "placeholder": "Insert the Campaign Name","class": "form-control"
        }
        ))
    Deal = forms.ModelChoiceField(queryset=deal.objects.filter(Deal_Type='Father'))
    class Meta:
        model = campaign
        fields = ['Name_Campaign','Deal']


class create_deal(ModelForm):
    Deal = forms.CharField(
        widget=forms.TextInput(
            attrs={
                    "placeholder": "Insert the Deal","class": "form-control"
        }
        ))
    class Meta:
        model = deal
        fields = ['Deal']

我的简化views.py:

class CampaignCreateView(SuccessMessageMixin,CreateView):
    model = campaign
    template_name = 'campaign/create_campaign.html'
    form_class = create_campaign

    def get_success_url(self):
        return reverse('list_campaign')

class DealCreateView(SuccessMessageMixin,CreateView):
    model = deal
    template_name = 'campaign/create_deal.html'
    form_class = create_deal

    def get_success_url(self):
        return reverse('list_deal')

create_campaign.html模板,我要求在其中选择交易或创建一个新交易,以打开新窗口:

                       <div class="fieldWrapper">
                           <label for="{{ form.Deal.id_for_label }}">Deal</label>
                           {{ form.Deal.errors }}
                           {{ form.Deal }}
                           <a id="over_table" href="/campaign/create_deal" target='_blank' class="material-icons">add_circle_outline</a>
                       </div>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...