在锁定期间开始编码,所以我是一个新手,我所做的可能是一个丑陋的怪物,所以要小心。任何帮助都会被感激,因为谷歌在我需要的时候抛弃了我
我在引导模式中添加了一个表单,可以是电影/电视/书籍。我的问题是它总是认为它是电视。当它有3个不同的URL和3个独立的POST请求时,这一切都起作用了,但我想感受一下
我试着用3个按钮告诉它,它的“区域类型”使用的是按钮名和帖子
<div class="btn-group mr-2" role="group" aria-label="second group">
<div class="dropright">
<a class="btn btn-primary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Add Items
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="Film">Add Film</a>
</form>
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="TV">Add TV</a>
<a class="dropdown-item" data-toggle="modal" data-target="#exampleModal" name="Book">Add Book</a>
</div>
</div>
</div>
<div class="form-group">
<form action="/{{franchises_details.franchise_slug}}/{{area|lower}}" method="POST" enctype="multipart/form-data">
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
{% csrf_token %}
{{franchises_details.franchies_name}}: {{area}}
{{form.name}}
{% if not area == "Film" %}
Number of Ep:{{form.number_of_episodes}}
{% endif %}
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<input type="submit" class="btn btn-primary" value="Film" name="Film"/>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
我在get请求中将它设置为“TV”(只是因为当我将它留空时它掉了下来),我认为这是我问题的第一部分。在post请求中,我检查按钮名称
def franchise_details(request,franchise_slug):
franchises_details = Franchise.objects.get(franchise_slug=franchise_slug)
form_type = forms.CreateFranchiseItemEp
if request.method == 'POST':
if "Film" in request.POST:
area = "Film"
form_type = forms.CreateFranchiseItemNoEp
if "TV" in request.POST:
area = "TV"
form_type = forms.CreateFranchiseItemEp
if "Book" in request.POST:
area = "Book"
form_type = forms.CreateFranchiseItemNoEp
form = form_type(request.POST)
if form.is_valid():
form_instance = form.save(commit=False)
form_instance.author = request.user
form_instance.franchies_name_id = franchises_details.id
form_instance.area_type = area
if area == "Film":
form_instance.number_of_episodes = 0
if area == "Book":
form_instance.number_of_episodes = 0
form_instance.all_user_average = 0
form_instance.save()
return redirect('/' + franchises_details.franchise_slug)
else:
form = form_type()
area = "TV"
return render(request, 'franchises_details.html', {'franchises_details': franchises_details, 'franchises_user': franchises_user, 'franchise_items_films':franchise_items_films, 'franchise_items_tvs':franchise_items_tvs,'franchise_item_users_film':franchise_item_users_film,'franchise_item_users_tv':franchise_item_users_tv, 'form':form,'area':area})
这里通常会有更多的内容,但我删除了这个问题,因为它有点忙,我认为这是唯一相关的部分
在我看来,我的“如果”电影/电视/书的请求。帖子:“什么都不做。问题是这是what the intent is suggesting I do。我把它搞砸了,或者它不再是一件事了,但我在这个阶段完全迷失了方向
tl;医生,我按的是哪个按钮?我按下电影按钮,它以为是电视。它作为单独的URL使用相同的变量
正如我所说的,任何帮助都将是令人惊奇的,因为我大部分都是靠一半的知识和复制粘贴工作
好吧,原来我是个白痴。我一直在旧的URL上运行这个代码,这是为电视设置的
此外,按钮的名称是电影,所以我需要一个按钮,每次提交,但它现在的工作
当我开始使用Django时,我也遇到了类似的问题。我正在为一家餐厅创建一个预订表单,我想根据用户的输入动态更改表单
问题是,您希望让后端控制前端逻辑,这是非常低效的
你可以做两件事
注意:如果您选择选项2,那么将来您可以重点学习GraphQL,它是REST的一个更现代的版本(但文档较少),以及REACTjs而不是JQuery。我说在将来,因为REST和JQuery比其他两个更容易学习
祝编程顺利,我希望这会有所帮助:)
相关问题 更多 >
编程相关推荐