问题描述
我希望足够清楚。
我有一个与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 (将#修改为@)